일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- airflow
- OS
- jvm
- EC2
- helm
- Spring
- Operating System
- docker
- aws s3
- kubectl
- Network
- PostgreSQL
- Trino
- grafana
- CVAT
- Python
- AWS
- log
- zookeeper
- CSV
- ip
- kubeadm
- MAC address
- Vision
- JavaScript
- Packet
- Kafka
- tcp
- kubernetes
- java
- Today
- Total
JUST WRITE
What is OS? 본문
이 글은 KOCW 강좌 중 경성대학교 양희재 교수님의 '운영체제' 강의를 정리한 글입니다.
OS
Operating System
사용자가 컴퓨터를 쉽게 다룰 수 있게 해주는 software이다.
Window, Linux, MacOs, iOS 등이 있다.
- Hardware 관리 -> CPU, Memory, 마우스, 키보드 등을 효율적으로 사용할 수 있도록 관리 / 제어
- 컴퓨터 성능 향상 -> Hardware와 프로그램을 잘 관리하여 성능 향상
- 사용자 편의 제공 -> Graphic, Text User Interface를 통해 남녀노소 쉽게 쓸 수 있도록 제공
- 자원 할당 -> 프로그램들이 적절하게 자원(CPU, Memory... 등등)을 쓸 수 있도록 관리
Booting
Booting은 컴퓨터를 기동하는 과정으로 운영체제를 시작하는 과정이다.
Main Memory는 크게 ROM과 RAM으로 나뉘어 진다.
ROM은 비휘발성 Memory로 안에 POST와 Boot Loader가 저장되어 있다.
- POST(Power On Self-Test)
- 전자장치들이 전원 킨 뒤 즉시 실행하는 루틴
- 연결된 Hardware들이 바르게 작동하는지 Check
- Boot Loader
- Hardware에 저장되어 있던 운영체제 프로그램을 Memory로 올려주는(실행) 프로그램
컴퓨터 전원이 켜지면 위 2가지 프로그램이 실행된다.
Booting은 운영 체제 프로그램이 Memory에 올려지는 것을 말한다.
운영 체제는 컴퓨터 전원 꺼질 때까지 Memory에 상주한다.
Kernel vs Shell
운영체제는 크게 Kernel과 Shell(Command Interpreter)로 나누어진다.
Kernel
Kernel은 운영체제의 핵심이다.운영체제의 주요 Process를 처리한다.
Shell
Shell은 명령어를 해석해주는 프로그램이다.
사용자가 내린 명령을 해석해서 Kernel에게 주고 수행한 결과를 다시 사용자에게 전달한다.
변천
초창기 컴퓨터
운영체제는 컴퓨터와 발전을 같이 하였다.
처음 컴퓨터 구성은 Card Reader, Processor, Line Printer로 이루어졌다.
하나의 프로그램을 실행하기 위해서 위 3가지 구성을 거쳐야 했다.
운영체제가 없이 사람이 직접 3가지 구성을 동작하며 프로그램이 실행되었다.
Batch Processing System
위에서 1개의 프로그램이 수행할 때 Compile, Link, Loading 과정이 따로 진행되었다.
Batch Processing System이 도입되면서 이것을 자동화시켜주었다.
1개 프로그램이 Memory에 할당되어 실행되었다.
Memory에 할당되다 보니 Resident Moditor라고도 한다.
Multi Programing System
Batch Processing System은 1개 Program이 Memory에 할당되어 실행되었다.
CPU 성능이 좋아지면서 처리 속도가 빨라졌다.
Program이 실행 중 I/O가 진행되면 CPU가 아무것도 안 하는 상태(idle) 되었다.
비효율적인 idle 상태를 줄이기 위해 Multi Programing System이 도입되었다.
Memory에 1개가 아닌 다수의 Program을 올려 실행되는 System이다.
A Program이 I/O가 진행되면 다른 B Program이 CPU를 쓰며 Swiching을 한다.
CPU Scheduling, Memory 관리/보호 등 다수 Program을 Memory에 올리며 신경 써야 할 부분이 커졌다.
Time Sharing System
Time Sharing System은 컴퓨터를 대화식(Interactive System)으로 사용하려는 시도에서 탄생하였다.
CPU의 성능이 좋아지면서 1초 안에도 엄청난 연산이 수행 가능하다.
다수의 Program이 짧은 시간동안 빠르게 Switching 하면서 수행한다.
사용자 입장에서는 동시에 실행하는 것처럼 느껴진다.
Time Sharing System이 도입되면서 Process 간 통신이 가능해졌다.
그리고 가상 메모리, 동기화 기술이 등장하게 되었다.
고등 운영체제
- Multi Processor System
- 병렬 시스템(Parallel System)
- Tightly-couple System -> 다수의 CPU - 1개 Memory
- Distributed System
- Multi Computer System
- Loosely-couple System -> 다수의 컴퓨터 - LAN으로 연결
- Real Time System
- 정해진 시간 안에 Program 수행(Deadline)
- 공장 자동화(FA), 군사, 항공, 우주
'OS' 카테고리의 다른 글
CPU Scheduling (0) | 2022.01.11 |
---|---|
Process (0) | 2022.01.09 |
OS Service (0) | 2022.01.06 |
Dual Mode and Protection (0) | 2022.01.05 |
Interrupt-Based System (0) | 2022.01.04 |