@ Process는 두 가지 측면으로 나누어서 생각해 볼 수 있습니다.
// Design-Time entity이며,
// Run-time entity입니다.
> OS가 관리하는 단위, 수행의 주체, 자원을 할당 받는 주체입니다.
@ Design-Time entity라는 것은 어떤 얘기인 것일까요?
// S/W System 개발의 측면을 살펴보겠습니다.
> 설계
.. 요구사항이 설계에 반영 (require specification)하게 되겠지요?
.. 또한 Fussy한 시스템을 Decomposition해야 합니다.
.. 결과로 A Set of Task(설계할 시스템의 한 부분을 독립적으로 구성하는 것)가 나오게 됩니다.
> 구현
.. {Tasks}가 반영됩니다.
.. 결과물로서는 {Programs}가 나오게 됩니다.
> {Programs}들이 컴파일 되어 OS에 의해 하나하나 수행됩니다. -> Process가 됩니다.
> 이는 Task하나가 Process 하나와 One to One Mapping이 된다는 의미와 같습니다.
// 이것이 가능한 이유는, OS가 decomposition의 결과물로 나온 Task들을
> 하나의 Process와 Mapping시켜 수행시킬 수 있는 능력을 가지고 있기 때문입니다.
@ 그렇다면 OS는 왜 Runtime entity로서 Process를 가지고 있는 것일까요?
// 자원 Accounting
> 누가 자원을 가지고 있는지 파악하는 행위
// 자원 Allocation
// Scheduling
// event handling
> 이 모든 것을 편하게 할 수 있다는 것도 있지만,
// System이 decomposition해서 나온 결과물들을 바로 구현할 수 있게
> 그리고 수행할 수 있게 만들어 줄 수 있기 때문에 중요하다는 것을 명심해야 합니다.
@ 그렇다면 여러분들은 이제 왜 Process가
// Run-Time entity이고
// 동시에 Design-Time entity 라는 것을
.. 이해하셨나요?