일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 운영체제
- 알고리즘
- SwiftUI
- widgetkit
- Swift
- 스위프트
- 네트워크
- 컴퓨터그래픽스
- 문법
- c++
- 멋쟁이사자처럼
- 영남대
- uikit
- 후기
- spritekit
- 웹
- 스유
- cs
- composable architecture
- 백준
- widget
- dispatchqueue
- TCA
- Protocol
- 리액트
- swift concurrency
- 대외활동
- 위젯킷
- 멋사
- ReactorKit
- Today
- Total
목록CS/운영체제 (6)
맛동산이
페이지 교체(page replacement): 현재 메모리에 적재되어야 하는데 그렇지 못하기 때문에 프레임중 하나를 비우고 이곳에 요청된 페이지를 적재하는 과정을 의미한다. 페이지 폴트는 페이지 폴트 핸들러에 의해서 실행된다.Victim fram : 비우기로 선택된 프레임Victim page : 희생 프레임에 들어가있는 페이지 페이지 교체 순서디스크에 필요한 페이지확인프리 프레임을 찾음없다면, 희생 프레임을 선택한다.페이지를 디스크로 부터 읽어 프레임에 저장한다.프로세스 재 실행 페이지 교체가 일어날때 희생 프레임을 어느 프로세스에서 얻어올지에 대해서 2개의 방법이 있다.지역교체 : 각 프로세스는 자신이 사용중이 프레임 중에서 교체할 프레임을 선택전역교체 : 전체 프레임 중에서 교체 대상 프레임을 교체지..
각 프로세스마다 실행에 필요한 최소 페이지 프레임이 확보되어야 한다.프레임수가 줄어들면 페이지 폴트가 발생한다. 따라서 실행이 중단되면 instruction cycle이 발생하기 때문에 딜레이가 계속해서 발생된다. 또한 하나의 프로세스가 돌아갈때도 참조하는 모든 페이지는 동시에 한 메모리에 적재되어야 한다.그래서 결국 가장 효율적인 프레임 할당은. 작업집합을 약간 넘나드는 크기가 적당하다.그래서 이처럼 최소 최대 프레임 수는 다음과 같이 결정된다. 최소의 프레임 할당수컴퓨터 구조에 의해서 좌우되고한 명령어 수행을 위해 모든 페이지를 수용할수 있는 프레임 수최대 프레임 할당 수는물리메모리의 크기프레임 할당 알고리즘균등할당 : 모든 프로세스에게 같은 프레임 수를 할당비례할당 : 각 프로세스 크기에 비례해서 ..
가상메모리물리메모리의 한계는 결국 메모리 주소 버스 크기에 좌우된다.32비트의 cpu면 2^32 가 물리메모리가 4gb가 되고. 64비트라면 2^64가 될것이다. 하지만 실제적으로는 비용상 8~32gb정도 장착된다.그렇다면 만약 프로그램이 5gb처럼 큰 프로세스는 돌아갈수 없으며, 동시수행되는 프로세스의 크기의 총합은 물리메모리 보다 클수가 없다는 단점이 발생한다.즉 프로세스보다 메모리가 작으면, 할당이 될수가 없다. 이를 해결하는 방법은프로세스의 메모리와 보조저장장치에 동시에 프로세스를 나눠서 저장하게 되면 프로세스는 실행하기에 충분한 메모리가 잇다고 착각하게 된다.스와핑(swapping)을 통해서 해결할수 있다. 메모리가 부족할때 실행에 필요하지 않는 부분은 보조저장장치에 이동 하는것이다.이렇게 하..

세그멘테이션(segmentation) 페이징은 분명, 외부단편화가 생기지 않고, 간단하게 메모리 효율을 높일수 있었지만,하나의 문제점이 발생한다.바로, 하나의 프로세스를 구성하는 논리적인 의미의 코드나 데이터들을 나눌수 없었던 것이다.즉 하나의 프로세스 안에서 영역을 나눌수 없었다. segmentation은 프로세스의 데이터를 데이터, 힙 스텍 코드 영역을 나누고 코드영역을 함께 나눠서 사용할수 있도록 하기 위해서 하나의 페이지 안에서 데이터 종류에 따라 세그먼트 단위를 할당하는 방식을 의미한다.즉, 페이징은 프로세스 별로 메모리를 할당하는것이고, 세그멘테이션은 할당된 프로세스를 좀더 잘게 나누는 방법이다. Segment라는 서로 다른 길이를 가질수 있는 블럭을 구성해주기 때문에 비연속 할당또한 하기 때..

페이징 한 프로세스의 논리 주소 공간을 연속적인 하나의 긴 메모리가 아닌, 메모리를 여러개의 포스트잇과 같이 작은 동떨어진 공간들에 배정할수 있도록 하는 방법이다. 이를 통해 외부단편화를 해결할 수 있다. 모든 논리 주소는 페이징 하드웨어에 의해서 물리주소로 매핑된다.Frame : 물리메모리를 고정된 크기로 분할한 것.Page : 논리주소를 물리메모리 처럼 분할한 것논리주소를 물리주소로 변환하기 위해서 페이지 테이블을 이용하게 된다. 페이징 특징구현이 고정크기로 분할하기 때문에 쉽다.Cpu에 의존하는게 없다. 이식성이 높다.시스템에 따라 page크기를 다르게 설정도 가능하다. 융통성이 높다.시간 오버헤드 적에서 우수하다. 외부단편화가 생기지 않고, 홀 선택 알고리즘을 실행할 필요가 없다.페이징 또한, 내..

메모리는 해당 위치를 알려주는 주소가 존재하며, 메모리 주소는 크게 두가지 종류로 나눠진다.물리적 메모리주소 : 실제 메모리 상에 존재하는 주소를 의미한다.논리적 메모리주소 : 프로세스에 메모리가 할당이 됐을때, 현재 물리메모리 안에서 실행중인 메모리의 위치를 나타내는 주소로, 프로세스 내부에서는 0~끝 까지를 의미하게 되며, 이말은 즉, 프로세스 내부에서 사용하는 메모리의 위치를 나타내는 값이다. 이러한 논리적 메모리를 읽기 위해서는 mmu라는 것이 필요하다. MMU(memory allocator) : 논리주소를 물리주소에 매핑시켜주는 역할로, 실제 프로세스의 요구하는 정보 위치를 메모리에 할당하게 하는 녀석이러한 과정에서 메모리테이블을 사용하기도 한다. 메모리할당메모리 할당 방법은 크게 연속적 메모리..