취업 준비, 자격증 공부를 하면서 슬쩍슬쩍 OS 용어가 나오는데
중요했다는 것과 두루뭉실한 역할만 기억나고 자세한 기억이 안난다.
그래서 학부생 시절 열심히 공부했던 운영체제(OS)를 복습하기로 결심🔥
우선 공부해야 될 용어를 먼저 나열해보자. 이래야 공부할 의지가 생긴다
| 용어 | 의미 |
|---|---|
| Process | 처리단위! |
| Thread | 멀티 쓰레드..? 한번에 여러개 돌릴 때 쓰는거..😅 |
| Virtual Memory | 그나마 이건 쫌 안다. Paging, Segmentation |
| Scheduling | 들으면 아는 정도? OPT, LFU, LRU, SJF, RR, 등등 ... |
| Semaphores | 이건 진짜 들었던 기억만난다..🫠 |
| Synchronize | 굉장히 중요했던 것 같다..🙄 |
| System call | 이런 것도 있었지...🤥 |
세부적으로 가면 뭐가 더 많이 있는데 일단 여기까지!
공부하면서 하나씩 링크를 추가하도록 하자.
오늘은 가볍게 OS 정의부터!
오퍼레이팅 시스템(operating system, 약칭: OS)
컴퓨터 하드웨어, 시스템 리소스, [사용자] - [응용 프로그램] 간의 상호 작용을 관리하고 제어하여
프로그램에 대한 일반적 서비스를 지원하는 시스템 소프트웨어이다.- 위키백과 -
우선 컴퓨터의 구성요소에 대해 간단하게 복기하자면
컴퓨터의 핵심 구성 요소로는 CPU, 입•출력 장치, 주기억장치, 보조기억장치 가 있다.
이러한 것들을 시스템 리소스 라고 한다.
이 과정을 관리하는게 바로 OS이다.
쉽게말해서 OS는 사용자가 컴퓨터를 편하게 쓸 수 있도록 도와주는 도구이다.
OS
├── 목적
│ ├── Throughput
│ ├── Turn Around Time
│ ├── Availability
│ └── Reliability
│
├── 종류
│ ├── Windows
│ ├── Unix
│ ├── Linux
│ ├── MacOS
│ ├── iOS
│ └── Android
│
├── Memory
│ ├── 관리전략
│ │ ├── Fetch # 요구/예상 반입
│ │ ├── Placement # First/Best/Worst Fit
│ │ └── Replacement # Scheduling Algorithm
│ │
│ └── Virtual Memory
│ ├── Paging
│ └── Segmentation
│
├── 스케줄링
│ ├── 선점(Preemptive)
│ │ ├── SRT(SRTN)
│ │ ├── Round Robbin
│ │ ├── 다단계 큐
│ │ ├── 다단계 피드백 큐
│ │ └── 선점 우선순위
│ │
│ └── 비선점(Non-preemptive)
│ ├── FCFS(FIFO)
│ ├── SJF
│ ├── HRN
│ └── 우선순위
│
└── 프로세스
└── Submit --> Hold --> Ready --- Run -> Exit
\ /
\ /
Wait