본문 바로가기

운영체제9

캐시의 지역성 -목차- 1. 캐시의 지역성 원리 2. 캐싱 라인(Caching line) 2.1 Direct Map 2.2 Full Associative 2.3 Set Associative 3. 캐시 미스(Cache miss) 1. 캐시의 지역성 원리 캐시 메모리는 속도가 빠른 장치와 느린 장치 간의 속도차에 따른 병목 현상을 줄이기 위한 범용 메모리이다. 이러한 역할을 수행하기 위해서는 CPU 가 어떤 데이터를 원할 것인가를 어느 정도 예측할 수 있어야 한다. 캐시의 성능은 작은 용량의 캐시 메모리에 CPU 가 이후에 참조할, 쓸모 있는 정보가 어느 정도 들어있느냐에 따라 좌우되기 때문이다. 이 때 적중율(Hit rate)을 극대화시키기 위해 데이터 지역성(Locality)의 원리를 사용한다. 지역성의 전제조건으로 .. 2022. 2. 5.
가상 메모리(Virtual Memory) -목차- 1. 가상 메모리(Virtual Memory)란? 2. 요구 페이징(Demand Paging) 3. 페이지 교체 3.1 페이지 교체 알고리즘 1. 가상 메모리(Virtual Memory)란? 이전 업로드한 글에서 주 기억장치의 외부 단편화 해결을 위해 페이징(Paging)이라는 메모리 관리 전략을 사용한다고 하였다. 프로세스는 페이지라는 블록으로 나뉘고, 페이지가 주기억 장치의 프레임에 적제 되어 프로세스가 실행된다. 만약 100MB인 메인 메모리에서 200MB 크기의 프로세스를 실행하려면 어떻게 해야 할까? 단순히 메인 메모리가 더 큰 컴퓨터를 사용해야 하는가? 이런 방법은 매우 비효율적일 것이다. 운영체제는 위와 같은 제약사항을 극복하기 위해 상대적으로 값싼 디스크의 일정 공간을 할당해 보조.. 2022. 2. 4.
메모리 관리 전략 -목차- 1. 메모리 관리 배경 1.1 스와핑(Swapping) 1.2 단편화(Fragmentation) 2. Paging(페이징) 3. Segmentation(세그맨테이션) 4. Paging과 Segmentation 1. 메모리 관리 배경 각각의 프로세스는 독립된 메모리 공간을 갖고, 운영체제 혹은 다른 프로세스의 메모리 공간에 접근할 수 없는 제한이 걸려있다. 단지, 운영체제 만이 운영체제 메모리 영역과 사용자 메모리 영역의 접근에 제약을 받지 않는다. 메인 메모리(Main Memory, Physical Memory, 주기억장치)는 CPU가 직접 접근할 수 있는 기억 장치로, 프로세스가 실행되려면 프로그램 코드를 메인 메모리에 적재해 두어야 한다. 그런데, 만약 프로그램 용량이 메인 메모리보다 크면 .. 2022. 2. 3.
프로세스 동기화(Process Synchronization) [파이썬(Python)] -목차- 1. 프로세스 동기화 (Process Synchronization)란? 2. 임계 구역(Critical section) 문제 3. 임계구역과 동기화의 필요성 4. Lock(MutEx) 5. 세마포어(Semaphore) 1. 프로세스 동기화 (Process Synchronization)란? 정의 : 협력하는 프로세스 사이에서 실행 순서 규칙을 정하여 공유 자원의 일관성을 보장하는 것 프로세스가 서로 협력하며 공유 자원을 사용하는 상황에서, 경쟁 조건이 발생하면 공유 자원을 신뢰할 수 없게 만들 수 있다. 이를 방지하기 위해 프로세스들이 공유 자원을 사용할 때 특별한 규칙을 만드는 것이 프로세스 동기화이다. 임계 구역 (Critical Section) : 여러 프로세스(또는 스레드)가 자원을 공유하.. 2022. 2. 3.