한정된 자원을 이용해서 효율적으로 활용
컴퓨터 시스템 구조
동기식/비동기식 입출력, 프로그램의 실행
프로세스, 프로세스의 상태, PCB, Context Switching, Process Scheduling Queue, Scheduler
Thread
부모 프로세스가 자식 프로세스 생성프로세스의 트리(계층 구조) 형성프로세스는 자원을 필요로 함운영체제로부터 받는다.부모와 공유한다.자원의 공유부모와 자식이 모든 자원을 공유하는 모델일부를 공유하는 모델전혀 공유하지 않는 모델 - 일반적수행부모와 자식은 공존하며 수행되는
system call, IPC(InterProcess Communication) - Message Passing, Shared Memory
CPU Burst time, I/O 시간, CPU Scheduler(FCFS, SJF(SRJF), Priority, RR
우선순위에 따라 프로세스의 순서생성 시에 우선순위가 결정Ready Queue를 여러 개로 분할foreground (interactive)background (batch - no human interaction)각 큐는 독립적인 스케줄링 알고리즘을 가짐foreground
멀티 프로세서IPC - Shared Memory를 이용하는 경우 Race Condition 문제가 발생할 수 있다.(Shared Memory 내의 Kernel data)커널 모드 수행 중 인터럽트 발생 시Process가 System Call을 하여 Kernel Mode
entry section - critical section에 진입하고자 하는 코드critical section 진입exit section - critical section에 나온 이후 코드Mutual Exclusive (상호 배제)프로세스 P가 critical sect
Producer생산자는 버퍼의 빈 공간이 자원이 된다.Consumer소비자는 버퍼의 데이터가 들어있는 공간이 자원이 된다.한 Process가 DB에 Write 중일 때 다른 Process가 접근하면 안됨read는 동시에 여럿이 해도 됨solutionwriter가 DB에
프로세스 동기화 혹은 병행 제어현재 실행 중인 프로세스 1개가 Active 상태인 경우 다른 프로세스는 Queue에서 기다린다.Monitor가 공유 공간에 접근을 제어하기 때문에 Lock 같은 별도의 작업이 필요없다.left, right available한 경우 → 식
일련의 프로세스들이 서로가 가진 자원을 기다리며 block된 상태하드웨어, 소프트웨어 등을 포함하는 개념I/O device, CPU cycle, memory space, semaphore 등프로세스가 자원을 사용하는 절차Request → Allocate → Use →
최대로 요청할 수 있는 자원을 요청해도 감당가능한 경우에만 자원 할당,그렇지 않은 경우에는 일부 자원을 요청하더라도 자원을 할당해주지 않는다.시스템이 safe stateDeadlock Detection요청을 받아들일 수 없음. (자원을 내어주지 않으면서 조건을 충족하지