운영체제 구조에서는 사용자영역과 커널 영역으로 나뉜다. 사용자 영역은 응용프로그램이, 커널영역은 커널이 있다.단일구조사용자 영역에 있는 여러 응용프로그램들은 시스템 호출 인터페이스를 이용해서 커널에게 작업을 요청한다. 커널에는 메모리 관리자, 프로세서 스케줄러, 파일
작업(Job) / 프로그램(Program)Job이란 우리가 짠 프로그램과 이 프로그램이 처리하는 데이터를 묶어놓은 것이다. 심플하게 프로그램이라고 부르기도 한다. Job은 Disk에 보관된 상태이고 실행 요청 전의 상태이다.프로세스(Process)실행을 위해 시스템(커
예상치 못한, 외부에서 발생한 이벤트를 말한다.인터럽트의 종류I/O interrupt, Clock interrupt, Console interrupt, program check interrupt, Machine check interrupt, Inter-process i
시스템에는 여러개의 프로세스가 존재하는데 자원을 할당 할 프로세스를 선택하는 것을 스케줄링(Scheduling)이라 한다. 스케줄링의 목적은 시스템의 성능을 향상시키는 것이다. 이를 위해서는 자원관리를 해야하는데, 자원관리의 방법으로는 시간분할(time sharing)
Non-preemptive scheduling도착시간을 기준으로 한다(ready queue 기준). 먼저 도착한 프로세스를 먼저 처리한다.자원을 효율적으로 사용할 수 있다. 들어온대로 순서대로 처리해서 내보내기 때문에 불필요한 스케줄링 오버헤드가 없고, cpu가 계속
Non-preemptive scheduling(한번 할당받으면 끝날 때 까지 실행)이며, 실행시간(burst time)이 가장은 프로세스를 먼저 처리한다. 장점으로는 평균 대기시간(Waiting Time)을 최소화 할 수 있다. 또한 프로세스 수를 최소화 할 수 있기
작업(or 우선순위)별 별도의 ready queue를 가진다. 최초 배정된 queue를 벗어나지 못하고, 각각의 queue는 자신만의 스케줄링 기법을 사용한다. Queue사이에는 우선순위 기반으로 스케줄링을 사용한다. 우선순위가 높은 경우에는 응답이 빠르다는 장점이 있
여러개의 프로세스들이 존재한다. 프로세스들은 서로 독립적으로 동작할 수 있다. 하지만 동시에 동일한 자원을 사용한다거나 할 때 문제가 발생할 수 있다.프로세스들이 서로 동작을 맞추면서 정보를 공유하는 것이다.프로세스들이 서로 어떻게 동작하고 있는지 모른체 각각 행동하는