- 운영체제란?
- 시스템의 자원과 동작을 관리하는 소프트웨어
- 프로세스, 저장장치, 네트워킹, 사용자, 하드웨어를 관리
- 메모리 구조
- Code : 실행할 프로그램의 코드
- Data : 전역 변수, 정적 변수 할당
- Stack : 지역 변수, 매개 변수 (컴파일 타임에 크기가 결정됨)
- Heap : 사용자의 데이터 동적 할당 (런타임에 크기가 결정됨)
- 프로세스, 스레드
- 프로세스 : 실행중인 프로그램 (= 여러개의 스레드로 구성된 실행체)
- 독립된 영역이므로 메모리와 CPU를 프로세스 마다 할당 받음
- 스레드 : 프로세스 안의 실행 단위
- 프로세스 안에서 메모리와 CPU를 공유해서 사용한다
- 프로세스 : 실행중인 프로그램 (= 여러개의 스레드로 구성된 실행체)
- CPU 스케쥴러
- ready queue에 있는 프로세스에 대해 CPU 할당 받는 방법
- 비선점 스케쥴링 (순서를 뺏지 않음)
- FCFS(Fisrst Come First Served) : 순서대로 처리
- SJF(Shortest Job First) : 버스트 시간이 짧은 프로세스 부터 CPU 할당
- 선점 스케쥴링 (순서를 뺏음)
- SRT(Shortest Remaining Time) : 진행 중인 프로세스가 있어도, 최단 잔여시간 프로세스를 위해 sleep 시키고 짧은프로세스 먼저 할당
- RR(Round Robin) : 모든 프로세스가 같은 우선순위, time slice 기반으로 스케쥴링
- 우선순위 스케쥴링
- 우선순위가 높은 프로세스에 CPU를 할당하는 스케쥴링 방식
- 가상 메모리
- 사용하는 부분만 메모리에 올리고, 나머지는 디스크에 보관
💡 모든 프로세스에게 메모리를 할당해주기에는 메모리의 크기가 유한하기 때문에 사용하는 방법으로, 사용하는 부분만 올리고 나머지는 디스크에 보관하는 방법을 가상 메모리 기법이라고 합니다
- 데드락
- 프로세스가 자원을 얻지 못해 다음 작업을 못하는 상태
- 발생조건
- 상호 배제(mutual exclusion) : 자원은 한번에 한 프로세스만 사용
- 점유 대기(hold and wait) : 최소 하나의 자원을 점유하고 있으며 추가 점유를 위해 대기하는 프로세스가 있어야함
- 비선점(no preemption) : 할당된 자원을 사용이 끝나기 전까지는 뺏지못함
- 순환 대기(Circular wait) : 순환하여 자원을 대기해야한다
반응형
'이론 공부! > 기술 면접 준비' 카테고리의 다른 글
[LDAP] Lightweight Directory Access Protocol 디렉토리 접근 프로토콜 (0) | 2023.12.13 |
---|---|
[네트워크] OSI 4 Layer에 따른 각 계층 정리 (0) | 2022.11.15 |
[OS] 동기화 및 Lock 관련 정리 (0) | 2022.08.24 |
[OS] Stack & Heap, 프로세스 & 스레드 (0) | 2022.08.24 |
[Data Strucutre] 면접 질문 대비 (0) | 2022.08.24 |