반응형
운영 체제의 역할
운영 체제의 역할은 크게 4가지가 있음
1. CPU 스케줄링과 프로세스 관리
2. 메모리 관리
3. 디스크 파일 관리
4. I/O 디바이스 관리
프로세스
- 프로그램을 메모리 상에서 실행 중인 작업, CPU의 스케줄링의 대상이 되는 작업을 의미함
- 프로그램이 메모리에 올라가면 프로세스가 되는 인스턴스화가 일어나며, 운영체제의 CPU스케줄러에 따라 CPU가 프로세스를 실행함
스레드
- 프로세스 안에서 실행되는 여러 흐름 단위
기본적으로 프로세스마다 최소 1개의 쓰레드를 보유하고 있음(메인 스레드 포함)
프로세스는 독립적으로 작동하며 각각 별도의 주소공간을 할당함
하나의 프로세스가 생성될 때, 기본적으로 하나의 스레드 같이 생성 진행
프로세스는 자신만의 고유 공간과 자원을 할당받아 사용하는 반면, 스레드는 다른 스레드와 공간, 자원을 공유하면서 사용하는 차이가 존재
프로세스 메모리 구조
이때 프로세스는 총 4개의 영역이 존재함
Code : 코드 자체를 구성하는 메모리 영역(프로그램 영역), Code segment라고 불림
Data : 전역변수, 정적변수,배열(Bss segment, Data Segment로 나뉨)
- 초기화 된 데이터는 data영역에 저장, static, cosnt로 선언 되어 있고, 0이 아닌 값으로 초기화 된 변수가 해당 메모리 영역에 할당 됨
- 초기화 되지 않는 데이터는 bss영역에 저장, 전역 변수 또는 static, const로 선언되어 있고 0으로 초기화 또는 초기화가 어떠한 값으로도 되어 있지 않은 변수들이 이 메모리 영역에 할당.
Heap : 동적 할당 시 사용( new(), malloc() 등)
Stack : 지역변수, 매개변수, 리턴 값(임시 메모리 영역), 함수가 호출 될 때마다 호출될 때의 환경 등 특정 정보가 스택에 계속해서 저장됨, 또한 재귀 함수가 호출된다고 했을 때, 새로운 스택 프레임이 매번 사용되기 때문에 함수 내의 변수 집합이 해당 함수의 다른 인스턴스 변수를 방해하지 않음.
프로세스 내에 있는 스레드는 stack만 따로 할당 받고 나머지 영역은 서로 공유한 상태임
'CS 전공지식 > Operating System' 카테고리의 다른 글
[운영체제] 메모리와 캐시 (0) | 2024.06.03 |
---|---|
[운영체제] CPU 스케줄링과 알고리즘 (1) | 2024.06.03 |
[운영체제] Mutex(뮤텍스), Semaphore(세마포어), Deadlock(데드락) (0) | 2024.06.02 |
[운영체제] 멀티 스레드와 임계영역(Critical Section) (0) | 2024.06.02 |
[운영체제] 멀티 프로세스와 PCB (1) | 2024.06.02 |