-
[TIL] 230519 - 운영체제 / 프로세스 스레드 / CPU 스케줄링Programming/Computer Science 2023. 5. 19. 00:20
운영체제
사용자가 컴퓨터를 쉽게 다룰 수 있게 해주는 인터페이스.
컴퓨터 자원, 하드웨어, 소프트웨어 등을 관리함
프로세스 관리, 스케줄링 → CPU를 관리함.
저장장치 관리 - 메모리, 가상 메모리 → 하드디스크, 파일로 저장
네트워킹 - TCP/IP
사용자 관리 - 계정, 접근권한
프로세스와 스레드
code
data : 전역변수, 정적변수, 배열,,,
heap : 동적 할당
stack : 지역변수, 매개변수, 리턴 값
프로세스
독립된 메모리 영역 할당받음 → 그래서 다른 프로세스의 자원에 접근 못함
ex 유튜브와 카카오톡 서로 데이터 알지 못함
스레드
프로세스 안에서 실행되는 여러 흐름 단위
프로세스 내에서 할당받은 자원을 이용해 동작하는 실행 단위
code, data, heap 메모리 영역을 공유함.
멀티 프로세스 / 멀티 스레드
멀티 프로세스
하나의 프로그램을 여러개의 프로세스로 병렬적으로 작업
장) 안전성.
단) 오버헤드 발생 가능성, context switching(정보 저장하고 복원하는 과정)
멀티스레드
여러스레드가 병렬로 작업을 처리
장) 효율성
단) 안전성. 메모리 관리 잘 못하면 모든 스레드 불능. 터질 수 있음 → critical section을 통해 대비
(상호 배제, 진행, 한정된 대기 충족)
데드락
= 교착상태
한정된 자원을 여러 프로세스가 사용하려고 할 때 발생.
자원을 얻기 위해 영구적으로 기다리는 상태.
P1 이 A를 가지고 있고 P2가 B를 가지고 있을 때,
P1은 B를 필요로 하고 P2는 A를 필요로 한다면 P1,P2는 서로의 자원을 얻기 위해 무한정 기다리게 됨.
CPU 스케줄링
스케줄링의 목표 : 가능하면 많은 일을 / 빠른 시간에 / 기한 안에 하는 것
CPU는 동시에 동작하는 것처럼 보이지만 사실 하나씩 순서대로 처리되고 있다.
- 비선점 스케줄링
- FCFS : First come first served
- 먼저 도착한 순서대로
- SJF : shortest job first
- 수행시간이 짧은 것부터 먼저 수행
- HRN : highest respons-ratio next
- SJF의 단점 보완, 우선순위를 계산하여 보완
- FCFS : First come first served
자료
https://github.com/gyoogle/tech-interview-for-developer
'Programming > Computer Science' 카테고리의 다른 글
[TIL] 230524 - RESTFul API (0) 2023.05.25 [TIL] 230522 - Hash 해시에 대해 (0) 2023.05.22 [TIL] 230516 코딩테스트, 시간복잡도 (0) 2023.05.17 개발자의 능력 척도 - 드라이퍼스 모델 (0) 2022.05.12 Redis 입문용 정리 (0) 2022.04.19 - 비선점 스케줄링