본문 바로가기

Operating System

(4)
[OS] 캐시 메모리(Cache Memory)란? 캐시의 지역성(Locality)이란? 캐시 메모리(Cache Memory) 주기억장치에서 자주 사용하는 프로그램과 데이터를 저장해두어 속도를 빠르게 하는 메모리 그러므로 캐시는 주기억장치보다 크기가 작을 수밖에 없다! 캐시 기억장치와 주기억장치 사이에서 정보를 옮기는 것을 사상(Mapping, 매핑)이라고 함 매핑의 3가지 방법 - 직접 매핑(Direct Mapping), 연관 매핑(Associate Mapping), 집합 연관 매핑(Set Associate Mapping) 속도가 빠른 장치와 느린 장치간의 속도 차에 따른 병목현상을 줄이기 위한 범용 메모리 이를 위해서는 CPU가 어떤 데이터를 원하는지 어느 정도 예측할 수 있어야 한다. 캐시 메모리에 CPU가 이후에 참조할, 필요 있는 정보가 어느 정도 들어있느냐에 따라 캐시의 성능이 좌..
[OS] 스레드의 동기화 기법 - 유저 모드 동기화/커널 모드 동기화 스레드는 메모리의 구조 중 스택 영역을 제외한 코드/데이터/힙 영역을 공유한다. 이 때 여러 스레드가 동시에 같은 자원에 접근하는 것을 막기 위해 동기화 기법을 취해야 한다. 스레드의 동기화 기법 실행 순서의 동기화 스레드의 실행 순서 정의, 이 순서에 반드시 따르도록 하는 것 한 순간에 하나의 스레드만 접근 메모리 접근에 대한 동기화 메모리 접근에 있어서 동시 접근 막는 것 실행 순서가 중요한 상황이 아닌 경우, 한 순간에 하나의 스레드에만 접근하면 되는 상황 동기화 기법의 두 가지 구분 유저 모드 동기화 커널의 힘을 빌리지 않는(커널 코드가 실행되지 않는) 동기화 기법 성능상의 이점, 기능상의 제한(라이브러리를 이용) 종류 크리티컬 섹션 기반 동기화 - 메모리 접근 동기화에 사용. 임계영역 객체(Ke..
[OS] 단편화(Fragmentation)란? 내부 단편화와 외부 단편화란? 단편화(Fragmentation) 주기억장치에 프로그램을 할당하고 반납하는 과정에서 발생하는 사용되지 않는 작은 조각 공간 주기억장치 상에서 빈번하게 기억장소가 할당되고 반납됨에 따라 기억장소들이 조각들로 나누어지는 현상 내부 단편화란? 주기억장치 내 사용자 영역이 실행 프로그램보다 커서 프로그램의 사용 공간을 할당 후 사용되지 않고 남아있는 공간 주기억장치 내 사용자 영역 > 실행 프로그램 외부 단편화란? 주기억장치 내 사용자 영역보다 실행 프로그램이 커서 프로그램이 할당될 수 없어 사용되지 않고 남아있는 공간 주기억장치 내 사용자 영역
[OS] 뮤텍스(Mutex)와 세마포어(Semaphore)란? 프로세스 간 메시지를 전송하거나, 공유메모리를 통해 공유된 자원에 여러 개의 프로세스가 동시에 접근하면 Critical Section 문제가 발생할 수 있다. 이를 해결하기 위해 데이터를 한 번에 하나의 프로세스만 접근할 수 있도록 제한을 두는 동기화 방식을 취해야 한다. 동기화 도구에는 대표적으로 뮤텍스(Mutex)와 세마포어(Semaphore)가 있다. 이들은 모두 공유된 자원의 데이터를 여러 스레드/프로세스가 접근하는 것을 막는 역할을 한다. 뮤텍스와 세마포어에 대해 공부하기 전에, 용어 하나 알고 가자. 임계 영역(Critical Section) 여러 프로세스가 데이터를 공유하며 수행될 때, 각 프로세스에서 공유 데이터를 접근하는 프로그램 코드 블록 즉, 여러 프로세스가 동일 자원을 동시에 참조하..