CS/컴퓨터운영체제 12

OS - Scheduling

#CPU scheduling - 레디 큐에서 돌아갈 프로세스를 고름 - 모든 프로세스가 메모리에 있다고 가정 - 멀티프로그래밍 환경에서 필수정 - CPU utilization을 최대화 하는것이 목표 - Non-preemptive scheduling - 다음 상황에서만 작동 1. 프로세스가 종료 2. 러닝에서 블락으로 프로세스 상태 전이 #Process Execution Behavior - 가정: 1. 1 유저당 1 프로세스 2. 1 프로세스당 1 스레드 3. 프로세스들은 독립적, 자원 확보 경쟁(CPU 포함) - 프로세스는 CPU에서 런 - I/O burst cycle: 1. 잠시 계산(CPU에서) 2. I/O 진행 3. 1, 2번 반복 - ★입출력을 해야 컴퓨팅이 가능하기 때문임★ ㅁ- Two type..

OS - Semaphore

#Semaphore -> Semaphore는 어따쓰나? 공유 자원을 여러 프로세스가 접근할수 있게 하며 상호 배제를 보장 -> 순번대로 처리(공유자원이 개별자원화) -> 프로세스간 공유변수 이용 시 충돌 방지 - semaphore는 1965년 다익스트라가 발명 -> 일반화된 잠금 메커니즘(주머니 속의 돌), 일종의 카운터 - 세마포어는 두 개의 atomic 연산, P/wait and V/siginal 지원 - 세마포어는 1로 초기화(Binary) or Counting semaphore의 경우 초기값이 1보다 큼 - 임계 영역에 들어가기 전에 스레드는 “P semaphore” 또는 “wait semaphore”를 호출 - 임계 영역을 떠난 후에는 스레드가 V semaphore 또는 signal semaph..