CS 지식/운영체제(OS)
-
paging vs segmentationCS 지식/운영체제(OS) 2023. 5. 23. 23:24
page : process를 고정된 크기로 나눈 블록 frame : 메모리를 고정된 크기로 나눈 블록. page와 frame은 크기가 같음. segment : 서로 다른 크기의 논리적 블록 가상 메모리(Virtual Memory) 실제 메모리 크기와 관계없이 메모리를 사용할 수 있도록 가상 메모리 주소 사용 프로세스의 일부분만 메모리에 로드하고 나머지는 보조기억장치에 할당 MMU(Memory Management Unit)를 통해 논리 주소를 물리주소(실제 메모리 주소)로 변환시킴. (Mapping 과정) Paging(페이징) 페이지와 프레임을 대응시키는 page mapping 과정(virtual page number를 physical frame number로 mapping)이 필요하여 page table..
-
Page 교체 알고리즘CS 지식/운영체제(OS) 2023. 5. 1. 19:53
1. FIFO - 가장 먼저 메모리에 올라온 페이지를 가장 먼저 내보내는 것.(메모리에 올라온 지 가장 오래된 페이지 교체) - 구현이 간단하지만 성능은 좋지 않음. - Belady's Anomaly(page frame의 개수가 많아져도 page가 없는 page fault 발생이 오히려 늘어나는 현상) 발생 가능. 2. Optimal Page Replacement(최적 페이지 교체) - 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 알고리즘 - 가장 page-fault 발생이 적을 알고리즘 - Belady's Anomaly 발생 X - process가 앞으로 사용할 page를 미리 알아야 해서 실제로 구현이 거의 불가능. 3. LRU(Least Recently Used) 페이지 교체 - 가장 오랫..
-
Process 동기화(semaphore vs mutex vs monitor)CS 지식/운영체제(OS) 2023. 4. 26. 19:51
* CPU 개수가 많아진다고 무조건 성능이 좋아지는 것은 아닌 이유 : process synchronization 때문 * 스마트폰 락업 문제(갑자기 화면 정지) : synchronization(동기화) 때문에 deadlock이 발생해서 아무 반응도 할 수 없는 상태에 도달하는 것 Process Synchronization 문제의 해결책 1. Semaphore : synchronizataion을 제공해 주는 정수형 변수 - mutual exclusion mechanism의 예시. mutual exclusion보다 더 많은 일을 함.(mutual exclusion(lock, unlock 관점) + scheduling(wait, signal 관점) 기능.) Dijkstra가 고안 - binary semaph..
-
IPC(Interprocess Communication) protocolCS 지식/운영체제(OS) 2023. 4. 23. 21:57
IPC - process끼리 소통할 수 있는 mechanism - synchronization 필요 ex) semaphore, mutual exclusion, barrier, spinlock IPC의 장점 - data sharing : 한 process가 다른 process의 data에 access 해야 할 때 유용 - resource sharing : memory, file, device 등을 share 가능. => system에 필요한 memory, disk space 양을 줄일 수 있음. - synchronization : 한 process가 다른 process가 일을 끝낼 때까지 기다려야 할 때 등 synchronize를 가능하게 함. - modularity : process가 각각 specifi..
-
Process vs ThreadCS 지식/운영체제(OS) 2023. 4. 19. 10:56
Process란 - Program in execution(수행 중인 프로그램). 메모리 상에서 실행 중인 프로그램. (Thread는 이 프로세스 안에서 실행되는 흐름 단위.) - Execution stream in the context of particular process state Execution stream : 프로세스가 수행한 모든 명령어들의 순서 Process state / context Memory context : code, data(program의 전역변수 저장), stack(local 변수들, 함수 호출을 위한 필요한 데이터들 저장) Hardware context : CPU의 register values, I/O registers System context : kernel context..