Just do IT
article thumbnail
Chapter 05 가상 메모리 (3)
공부 Note/운영체제 2022. 1. 4. 22:35

페이지 폴트 (page fault) 어떤 페이지가 실제 물리 메모리에 없을 때 일어나는 인터럽트 운영 체제가 page fault가 일어나면 해당 페이지를 물리 메모리에 올림 생각해보기 페이지 폴트가 자주 일어나면? 실행되기 전에 해당 페이지를 물리 메모리에 올려야 함 - 시간이 오래 거림 페이지 폴트가 안 일어나게 하려면? 향후 실행/참조될 코드/데이터를 미리 물리 메모리에 올리면 됨 - 앞으로 있을 일을 예측해야한다 -> 신의 영역이다 페이지 교체 정책 (page replacement policy) 운영체제가 특정 페이지를 물리 메모리에 올리려 하는데 물리 메모리가 다 차있다면? 기존 페이지 중 하나를 물리 메모리에서 저장 매체로 내리고 (저장) 새로운 페이지를 해당 물리 메모리 공간에 올린다 페이지 ..

article thumbnail
Chapter 05 가상 메모리 (2)
공부 Note/운영체제 2022. 1. 4. 22:07

페이징 시스템 (paging system) 크기가 동일한 페이지로 가상 주소 공간과 이에 매칭하는 물리 주소 공간을 관리 하드웨어 지원이 필요 리눅스에서는 4KB로 paging 페이지 번호를 기반으로 가상 주소/물리 주소 매핑 정보를 기록/사용 페이징 시스템 구조 page 또는 page frame : 고정된 크기의 block (4KB) paging system : 가상 주소 v = (p, d) p : 가상 메모리 페이지 d : p안에서 참조하는 위치 페이지 크기가 4KB 예 가상 주소의 0비트에서 11비트가 변위 (d)를 나타내고 12비트 이상이 페이지 번호가 될 수 있음 페이지 테이블 (page table) * page table 물리 주소에 있는 페이지 번호와 해당 페이지의 첫 물리 주소 정보를 매핑..

article thumbnail
Chapter 05 가상 메모리 (1)
공부 Note/운영체제 2022. 1. 4. 22:04

가상 메모리 (Virtual Memory System) * 실제 각 프로세스마다 충분한 메모리를 할당하기에는 메모리 크기가 한계가 있음 폰노이만 구조 기반이므로 코드는 메모리에 반드시 있어야 함 가상 메모리가 왜 필요한가? * 하나의 프로세스만 실행 가능한 시스템 (배치 처리 시스템 등) 1. 프로그램을 메모리로 로드(load) 2. 프로세스 실행 3. 프로세스 종료 (메모리 해제) * 여러 프로세스 동시 실행 시스템 1. 메모리 용량 부족 이슈 2. 프로세스 메모리 영역간에 침범 이슈 * 가상 메모리 : 메모리가 실제 메모리보다 많아 보이게 하는 기술 - 실제 사용하는 메모리는 작다는 점에 착안해서 고안된 기술 - 프로세스간 공간 분리로 프로세스 이슈가 전체 시스템에 영향을 주지 않을 수 있음 가상 메..

article thumbnail
Chapter 04 쓰레드의 이해 (3)
공부 Note/운영체제 2021. 12. 30. 22:58

Mutex 와 세마포어 (Semaphore) * Critical Section (임계 구역)에 대한 접근을 막기 위해 LOCKING 매커니즘이 필요 - Mutex (binary semaphore) : 임계구역에 하나의 스레드만 들어갈 수 있음 - Semaphore : 임계구역에 여러 스레드가 들어갈 수 있음 : counter를 두어서 동시에 리소스에 접근할 수 있는 허용 가능한 스레드 수를 제어 세마포어 (Semaphore) * P : 검사 (임계영역에 들어갈 때) - S값이 1 이상이면 임계 영역 진입 후 S값 1 차감 (S값이 0이면 대기) * V : 증가 (임계영역에서 나올 때) - S값을 1 더하고 임계 영역을 나옴 * S : 세마포어 값 (초기 값만큼 여러 프로세스가 동시 임계 영역 접근 가능)..