운영체제란?컴퓨터의 HW와 사용자 간의 연결고리를 제공하는 인터페이스운영체제를 이루는 핵심 구성요소는 커널, 컴퓨터 전원이 켜지면 메모리에 바로 올라가서 상주HW와 사용자를 연결하는 SW왜 HW와 연결고리를 제공할까, 그냥 직접 HW를 제어하면 안 될까?운영체제의 목적
시스템 구조 CPU: 연산처리장치 Memory: 실행중인 프로그램이 로드되는 영역, OS & Process가 올라감 I/O device: 입출력장치, Disk, keyboard, monitor... 등이 있음 timer: I/O device와 프로세스
동기식: I/O 작업이 끝나야 제어가 사용자 프로그램에 넘어감작업이 끝날 때까지 기다림, I/O가 끝날 때까지 CPU를 낭비, 매시점 하나의 I/O만 일어날 수 있음I/O가 완료될 때까지 해당 프로그램에게서 CPU를 빼았음, I/O 처리를 기다리는 줄에 그 프로그램을
프로세스란 ? "Process is a program in execution" 프로세스의 문맥: 프로세스를 설명하기 위해 중요한 개념, 특정 시점을 놓고 봤을 때 이 프로세스가 어디까지 실행을 했는가에 대한 정보(현재 상태를 규명하는 정보) CPU의 수행상태를
<img src=https://velog.velcdn.com/images/gkh4302/post/db21723c-b6de-4f41-8049-6fe18039a451/image.png" width= "30%" height="30%"><img src="h
프로세스 생성 보통은 자원을 공유하지 않고 경쟁 보통은 부모 자식이 독립적으로 프로세스를 수행 fork는 부모의 code, data, stack 복사 -> 복사하는 시점의 부모 프로세스의 상태를 가져옴(PC, register 정보도 가져옴) 새로운 프로그램을 돌리
Burst time: I/O나 cpu 사용이 지속되는 기간을 burst time이라고 함프로세스는 대체로 I/O burst와 CPU burst가 번갈아 발생함.Process 분류: I/O bound, CPU boundProcess는 I/O 작업이 빈번하게 발생하는지,
선착순먼저 queue에 도착한 프로세스부터 순차적으로 실행도착 순서에 따라서 average waiting time이 큰 차이를 보임: 짧은 프로세스들이 먼저 도착해서 끝나면 waiting time이 작지만, 그 반대라면 waiting time이 길어짐.convoy ef
CPU, DeviceController(컴퓨터 내부?), 프로세스 등 실행의 주체는 저장공간인 Memory, 디스크, 해당 프로세스의 주소 공간을 사용함E-box에서 데이터를 읽어와서 연산결과를 S-box에 저장이러한 S-box를 공유하는 연산 과정으로 인해 Race
추상화된 자료형으로서 앞서 배운 동기화 방법을 추상화시켰다고 보면 된다.추상화된 자료형이란 object, opretaion으로 이루어진 논리적 정의로서 예를 들어 integer와 같이 정수와 사칙연산으로 이루어진 것을 말한다.정수형 변수 S와 P(), V() 연산으로
지금 다루는 여러 알고리즘이나 semaphore, spinlock, mutex 등은 모두 다양한 상황에서 발생할 수 있는 process syncronization 문제를 해결하는 방법임! p-c 문제 버퍼의 용량 제한 버퍼가 가득 찼을 때 생산자는 buffer
모니터 안에 있는 코드를 통해서만 공유데이터에 접근할 수 있도록 하고 모니터 안에 active하게 들어가서 수행할 수 있는 프로세스를 하나만 허용하는 작업을 모니터 자체가 제어 프로그래머는 모니터가 알아서 공유데이터에 대한 접근을 제어하기 때문에 lock, unloc
The Deadlock Problem Deadlock: 일련의 프로세스들이 서로가 가진 자원을 기다리며 block된 상태 Resource(자원): HW, SW 등을 포함하는 개념 ex) I/O device, CPU cycle, memory space, semapho
deadlock이 발생했는지 확인하고 복구자원 할당 그래프를 이용하여 찾기, 자원을 없애고 프로세스로만 간단히 표현 가능자원 당 instance가 1개 일때 활용자원 당 instance가 여러개 일때 사용하는 것을 사용하여 찾아도 됨, subset에 불과함싸이클 확인은
물리적인 메모리 안에 아랫부분에는 운영체제 커널이, 상위 부분에는 여러 프로그램이 섞여서 들어감 주소바인딩: 어떤 프로그램이 물리적인 메모리의 어디로 올라갈지 결정하는 것 Symbolic Address: 프로그래머는 주소가 아닌 변수 이름 혹은 함수 이름을 사용하
Paging 프로그램을 구성하는 논리적인 메모리를 동일한 크기의 page로 자른 후 각각의 page별로 물리적인 메모리의 적당한 위치에 올리는 기법 물리적인 메모리에 프로그램을 통째로 올리는 연속 할당 방식은 각각의 프로그램을 물리적인 메모리에 올려 놓을 때 주소
proection: 연산을 위한 권한을 표시하기 위한 bitcode영역: read-only, instruction을 수행하기 위핸 read만 가능data, stack: 읽고, 수정하는 모든 권한 가능CPU가 스케줄링에 의해 실행할 프로세스를 메모리에 로드한다.실행하는
이 chapter는 paging 기법을 사용한다고 가정실제로도 대부분이 paging 기법을 사용해 시스템을 구성함실제로 필요할 때 page를 메모리에 올리는 방법I/O 양 감소: 방어적인 소프트웨어 구현으로 인해 실제 핵심 기능이 아닌 에러, 버그 처리 등에 대한 코드
캐슁 기법한정된 빠른 공간(캐쉬)에 요청된 데이터를 저장해 두었다가 후속 요청시 캐쉬로부터 직접 서비스하는 방식paging system 외에도 cache memory, buffer caching, Web caching 등 다양한 분야에서 사용 기 위한 다양한 환