목록CS (67)
테크 로그포스 Tech Log Force
Mutual Exclusion 방법 1. Compare & Swap while문을 돌면서 크리티컬 섹션에 접근이 가능한 상태인지 (bolt=0 등) 계속체크하며 대기한다. 이 방식은 계속 cpu를 잡아먹는 busy_wating이 발생한다. 2. Semaphore 크리티컬 섹션에 들어가기 전에는 자원을 쓴다는 표시로 sem_wait (값을 감소), 자원을 다 썼으면 semSignal(값을 증가)를 처리해서 mutual_exclusion을 한다. 이건 busy_wating이 없다. 이 외에도 많은 방법이 존재한다. Mutual Exclusion을 할 때 유의해야 할 점 1. 공유개체에 대해 한 번에 하나의 프로세스면 사용 가능. 2. deadlock이나 starvation이 없어야 함. 3. 프로세스를 사용..
1. Programmed I/O I/O 모듈이 주기적으로 하나씩 체크한다. I/O 끝날때까지 기다렸다가 함. 그러므로 성능은 떨어진다. 2. Interrupt-Driven I/O 현재 진행하던 명령어를 마친 후 Interrupt체크를 한다. 3. Direct Memory Access (DMA) CPU는 명령어(read/write/시작주소 등)만 넘겨주고 나머지는 I/O랑 메인메모리가 한다. => 2번과 달리 cpu절약이 가능하다.
registers cache MainMemory Magnetic Disk(CD, DVD) Magnetic tape 아래로 내려갈수록 용량증가, 액세스 시간 증가, 프로세서의 메모리 액세스 빈도 감소 - Principle of Locality 참조하고자 하는 프로세스들은 뭉쳐있다. (10을 수행 후 11을 수행하지, 5000을 수행하진 않는다는 의미) Cache: OS에 보이지 않는다. 다른 메모리 관리 하드웨어와 상호작용한다. 프로세서가 주기마다 메모리에 액세스 해야 한다. 작고 빠르며 locality가 있다. 메모리 사이클 시간에 의해 프로세서 실행이 제한된다.