![article thumbnail image](https://blog.kakaocdn.net/dn/kJDz8/btr5dd7NPw7/7VfGWNbYDIKJkPWghIwvw1/img.png)
운영체제 (Operating System, OS) 란?
- 시스템 소프트웨어에 해당하는 운영체제 (OS)
- 컴퓨터 하드웨어를 관리
- 여러 어플리케이션 (응용 소프트웨어)들이 작동할 수 있는 환경 제공
- 사용자 ↔ 하드웨어 간 전반적인 상호작용하며 컴퓨터가 실행되는 동안 항상 수행되는 프로그램
운영체제 예시
- 컴퓨터: Windows, Linux, mac OS
- 모바일: Android, iOS
운영체제의 목적
- 사용자가 컴퓨터를 편리하게 사용
- 컴퓨터 하드웨어의 각각의 자원들이 더욱 효율적으로 사용되는 것
시스템의 발전
- 운영체제는 한 번에 한 개의 프로그램만 실행되는 단일 프로그래밍 → 현재의 빠른 운영체제로 발전되어 옴
- 일괄처리 시스템 → 다중프로그램 시스템 → 시분할처리 시스템 → 실시간 처리 시스템 → 분산처리 시스템 → 병렬처리 시스템
일괄처리 시스템 (Batch System)
- 일괄처리 시스템은 유사한 요구를 가지는 작업을 모아 하나의 그룹으로 수행하는 시스템
- 초기 컴퓨터가 동작하는 방식으로, 작업을 실행 시 끝날때까지 다른 작업을 수행 할 할 수 없음 (CPU가 쉬는 시간 많음)
- 상호작용이 필요 없는 큰 단위의 작업들을 수행할 때 사용
- 장점: 많은 사용자가 시스템 자원을 공유할 수 있고, 처리 효율 향상
- 단점: 생산성이 저하되며 응답시간이 길음 (약 6시간)
다중 프로그램 시스템 (Multi-Programmed System)
- 초기 컴퓨터에서는 하나의 프로그램이 메모리에 올라가면 하나의 프로그램만 CPU가 처리를 진행하는데, 이 과정에서 프로세서의 처리 속도와 입출력 속도 간의 차이로 인해, 입출력이 완료될 때까지 프로세서는 휴식중인 상태가 됨, 이는 프로세서의 자원 낭비로 이어짐
- 다중 프로그램 시스템은 입출력 작업의 종료를 대기할 동안 하나의 프로세서에서 다른 프로그램을 수행할 수 있도록 하는 것이 멀티프로그래밍
- 프로그램이 존재할 시, CPU는 멈추지 않고 계속 작동
멀티 프로세싱 (Multi-processing)
- 다수의 프로세서가 서로 협력적으로 일을 처리하는 것을 의미
- 컴퓨터는 1대인데 프로세서 (CPU)는 2개 이상, 보통 멀티코어시스템 (Multi-Core System) 을 포함함
멀티 태스킹 (Multi-tasking)
- Task 란 운영체제에서 처리하는 작업의 단위 또는 정해진 일을 수행하기 위한 명령어 집합을 뜻함 (process 보다 확장된 개념)
- 멀티 태스킹은 task 를 OS의 스케쥴링에 의해서 task를 번갈아가며 수행하는 것을 의미함
- 여러 개의 task를 자주 번갈아가며 수행하다보니 사용자는 동시에 여러 task가 수행되고 있다고 느끼게 됨
멀티프로그래밍 vs 멀티태스킹
- 멀티 프로그래밍은 프로세서의 자원낭비를 막기 위함
- 멀티 태스킹은 정해진 시간동안 각각의 task를 번갈아가며 수행하는 것
시분할 시스템 (Time-Sharing System)
- 시분할 시스템은 아주 짧은 주기로 CPU를 각각의 프로그램에 할당하여 각 사용자가 모든 프로그램이 동시에 작동하고 있다고 느끼게 하는 시스템
- 시분할 시스템을 통해서 CPU 스위칭이 발생하면, 프로그램의 state를 저장해 놓아야 하는데, 이 state를 이용하여 CPU를 다시 받아 수행 가능
- 예: 리눅스에서 여러 명의 사용자가 동시에 한 대의 컴퓨터에 접속해서 서로 다른 처리 가능
- 장점: 응답시간을 단축시키며 생산성 향상
- 단점: 사용 시 통신 비용 증가, 동시 사용자 수가 증가하면 시스템이 부하되어 개인 사용자의 체감 속도 느려짐
참고
2. https://choirim.tistory.com/65
'Backend Loadmap > Operating System' 카테고리의 다른 글
[백엔드로드맵][OS] 메모리 관리 (0) | 2023.04.24 |
---|---|
[백엔드로드맵][OS] 기본적인 터미널 명령어 (0) | 2023.04.07 |
[백엔드로드맵][OS] 스레드와 동시성 (0) | 2023.04.06 |
[백엔드로드맵][OS] 프로세스 관리 (0) | 2023.04.02 |
[백엔드 로드맵][OS] 터미널 사용 방법 (0) | 2023.03.18 |