System call system call은 운영체제에 의해 사용 가능하게 된 서비스에 대한 인터페이스를 제공한다. 특정 저수준 작업(예들 들면 hardware를 직접 접근해야 하는 작업)은 어셈블리 명령을 사용하여 작성되어야 하더라도 이러한 호출은 일반적으로 C와 C++ 언어로 작성된 함수 형태로 제공된다. 운영 체제의 kernel이 제공하는 서비스에 대해, 응용 프로그램의 요청에 따라 kernel에 접근하기 위한 인터페이스이다. Example of System Calls process 생성/종료나 I/O 등이 있다. (fork, exec, exit, wait)
인터럽트(interrupt) CPU의 process 실행 중, I/O device나 exception 등의 이벤트가 발생하면 해당 작업을 먼저 수행하도록 하는 것 External Interrupt 프로그램 외부 상황에 따라 발생 시점이 일정하지 않게 발생한다. hardware interrupt 비동기식 interrupt - I/O Interrupt, Timer Interrupt 등 Internal Interrupt 프로그램 내에서 발생하는 interrupt로 CPU로부터 발생하는 운영오류 등을 포함한다. softeware interrupt 동기식 interrupt - divide by zero, overflow 등 Interrupt 처리 과정 1. interrupt 요청 신호 발생 프로그램 실행 도중 i..
Deadlocks multi programming 환경에서 여러 thread가 한정된 resource를 사용하려고 서로 경쟁할 수 있다. 한 thread가 resource를 요청했을 때, 그 시각에 그 resource를 사용할 수 없는 상황이 발생할 수 있고, 그때는 thread가 대기 상태로 들어간다. 대기 중인 thread가 결코 다시는 그 상태를 변경시킬 수 없는 상황을 deadlock이라고 한다. 이 때에는 더이상 process가 진행되지 못하는 상태로 매우 치명적인 상태이다. 필요조건 deadlock은 한 시스템에 다음 네 가지 조건이 동시에 성립될 때 발생할 수 있다. 상호 배제(mutual exclusion): 최소한 하나의 resource가 비공유 모드로 점유되어야 한다. 비공유 모드에서는..
Threads 쓰레드도 process이다. 그런데 좀 가벼운. 그래서 light-weighted process라 한다. process이기 때문에 자기만의 memory 영역이 있고 역시 CPU를 할당 받아서 수행되는 과정을 거친다. process는 single thread of execution이라 할 수 있다. 일반적으로 하나의 thread를 가지고 작업을 수행한다. process 당 multiple program counter를 가지는 것을 생각해보자. Multiple location이 한 번에 실행될 수 있다. 프로세스와 차이 process는 컴퓨터에서 실행중인 프로그램을 말하고 고유한 공간과 자원을 할당 받아 사용한다. 반면 thread는 process 안에서 실행되는 여러 흐름의 단위로 proce..