Process
프로세스?
실행중인 프로그램을 프로세스 라고 한다.
프로그램은 생명이 없다. 하지만 프로그램이 실행이 되면 프로세스가 되고 프로세스는 프로그램이 종료될 때까지 생명활동을 이어간다.
프로그램이 실행이 되면 아래 그림과 같이 disk의 프로그램 정보가 memory로 load 된다.
프로그램에 속한 모든 정보가 memory로 load되는것은 아니다. OS는 프로그램 실행 도중 필요한 코드를 그때그때 load해서 사용한다.
memory 공간은 Code, Data, BSS, Heap, void, Stack 공간으로 구성된다.
- Code : 프로그램 코드가 올라오는 부분
- Data : 초기화된 전역 변수, static 변수
- BSS : 초기화되지 않은 전역 변수, static 변수
- Heap : malloc으로 동적 할당된 변수
- void : Heap과 Stack이 자라면서 가져가게 되는 빈 공강
- Stack : 지역변수
위와 같이 여러개의 프로세스가 만들어지고, 각각의 프로세스는 고유한 공간을 할당받아 사용한다.
프로세스의 정의를 알았고, 프로세스 memory공간의 구성을 알아보았다.
'CS > OS' 카테고리의 다른 글
[OS] Process #3 (Context Switching) (0) | 2021.07.07 |
---|---|
[OS] Process #2 (0) | 2021.07.06 |
[운영체제] Semaphore (0) | 2021.06.13 |
[운영체제] Locks #3 (0) | 2021.06.11 |
[운영체제] Locks #2 (0) | 2021.06.11 |