출처: https://3months.tistory.com/307 [Deep Play]

SYSTEM PROGRAMMING 2

Processes

Processes Process는 program이 메모리에 올라가 CPU가 접근 할 수 있는 상태를 의미한다. Program이라고 하면 안되고 Processor이라고도 하면 안된다. (Processor는 CPU이다.) Process는 두 가지 추상적인 개념을 program에 부여한다. Logical control flow 각각의 프로그램이 CPU를 독점적으로 사용는 것으로 착각한다. OS가 context switch를 해주기 때문에 가능하다. Private address space 각각의 프로그램이 메인 메모리를 독점적으로 사용하는 것으로 착각한다. OS가 virtual memory를 제공해주기 때문에 가능하다. Logical control flow와 Private address space 때문에 CPU..

Exceptional Control Flow, Exception

Control Flow Processor는 한 번에 한 가지 일만 처리할 수 있다. 실행되었을 때부터 종료될 때까지 CPU는 그저 instruction들을 순서대로 읽을 뿐인데 이 순서를 Control Flow라고 한다. 항상 instruction을 순서대로 읽으면 좋겠지만 당연하게도 정해진 순서를 바꿔야 하는 경우가 발생하게 된다. Program state에서 Jumps, branches, call, return 등을 사용하여 프로그래머가 의도적으로 이 control flow를 바꿀 수 있다. 하지만 data가 disk나 network adapter에서 오는 경우, divides by zero가 발생하는 경우, 사용자가 Ctrl-C를 누르는 경우, System에 할당된 시간이 다 된 경우 등 Syste..