목록운영체제 (16)
Kim Seon Deok
전통적 동기화 1. Producer and Consumer Problem 생산자가 일단 데이터를 생산하면 buffer에 저장하고 소비자는 buffer에 저장되어 있는 것을 소비한다. buffer가 꽉차면 buffer가 소비자에 의해 비워질 때까지 생산자는 버퍼에 데이터를 저장할 수 없다. buffer가 완전히 비면 소비자는 데이터를 빼내올 수 없다. buffer는 데이터를 모아둘 수 있는 메모리 혹은 디스크 공간이다. → 용량이 유한하다. → Bounded Buffer class Buffer { int[] buf; int size; int count; int in; int out; Buffer(int size) { buf = new int[size]; this.size = size; count = in ..
운영체제에서 중요한 것 → 프로세서 관리 CPU 스케줄링 → FCFS, SJF, priority scheduling, Round Robin, Multilevel queue, Multilevel feedback queue 프로세스 동기화 쓰레드란? 쓰레드는 프로그램 내부의 흐름, 맥이다. 하나의 프로그램에는 기본적으로 하나의 스레드가 존재한다. → 단일 스레드 방식 기존 os는 일정시간이 지나면 다른 프로세서로 넘어가는 형태이다. → context switching 단위 : 프로세서 현재 os는 일정시간이 지나면 프로세서 내부 다른 쓰레드로 넘어간다. → context switching 단위 : 쓰레드 스레드는 프로세서의 코드와 데이터가 포함된 메모리를 서로 공유한다. 하지만 스위칭되면 다른 스레드로 가야..
프로그램 : 하드디스크에 실행되지 않고 내장되어 있음 프로세스 : 프로그램이 메인 메모리에서 실행되고 있음 cpu는 프로세서와 소통하고 cpu의 시간을 나눠준다. new → ready → running →wating → ready → running → teminated new → ready → running →wating → ready → running → teminated time expired가 추가되어 일정 시간이 지나면 강제로 다른 프로그램으로 스위칭된다. PCB (Process Control Block) = Task Control Block PCB는 os 안에 process management 안에 있으며 프로세서에 대한 모든 정보를 담고 있다. 1 프로세서 당 1 PCB를 가지고 있다. PC ..
운영체제 서비스 프로세스 관리 주기억장치 관리 파일 관리 보조기억장치 관리 입출력 장치 관리 네트워킹 보호 기타 프로세스 관리 (Process management) 프로세스(Process) 메인메모리에서 실행중인 프로그램 → program in execution 프로세스의 생성, 소멸(creation, deletion) 프로세스 활동 일시 중지, 활동 재개(suspend, resume) 프로세스 간 통신(interprocess communication : IPC) 프로세스 간 동기화(synchronization) 교착상태 처리(deadlock handling) 주기억장치 관리 (Main memory management) 프로세스에게 메모리 공간 할당 (allocation) 메모리의 어느 부분이 어느 프로..
인터럽트 현대 운영체제는 인터럽트 기반 시스템이다. 전원이 켜지면 ROM에서 Post프로그램을 읽어 부트로더를 실행하고 하드디스크에 있는 os를 메인메모리의 RAM으로 로드해 os가 resident상태가 되면 다른 프로그램을 기다리도록 만든다. 하드웨어 인터럽트 마우스가 cpu의 인터럽트 선에 전기신호를 보냄 → cpu는 하던 일을 중지하고 os 안에 들어있는 mouse interrupt service routine으로 jump → 특정 프로그램을 더블클릭하면 그 프로그램을 하드디스크에서 메인메모리로 가져옴 os안에는 여러 개의 프로그램이 들어있다. 키보드나 마우스 등의 하드웨어를 작동시키면 인터럽트가 발생하는데, 인터럽트가 걸렸을 때 service routine이 동작한다. 인터럽트가 끝나면 cpu는 ..