- 본 글은 인프런 공룡책 운영체제 강의를 듣고 정리한 내용입니다
0. Operating system
- 컴퓨터의 하드웨어를 관리해주는 소프트웨어
- 어플리케이션 프로그램, 하드웨어와 유저간의 연결을 해주는 역할
- 가장 핵심적인 것은 Kernel
1. 0 - Classical computer system
- 책에선 modern 이라 나옴
- CPU, bus 로 연결된 여러개의 device controllers 로 구성되어 있다
1. 1 - Bootstrap
- 컴퓨터가 시작되자마자 가장먼저 실행하는 프로그램 ( 부팅 프로그램 )
- 운영체제를 메모리에 로딩한다
1.2 - Interrupts
- I/O 디바이스 에서 신호가 있을 때 그 신호를 통신해주는 것
- system bus 를 통해 CPU에 signal을 보내준다
1.3 - 폰노이만 아키텍쳐
- fetch , execute 를 사용
- instruction register (IR) 에다가 저장함
2.0 - storage system
- 용량과 속도에 따라 나뉘어짐
- 순서
- registers
- cache
- main memory (RAM)
- solid-state disk (SSD)
- hard disk (HDD)
- optical disk
- magnetic tapes : backup 용도
3.0 - I / O structure
- thread of execution 를 가지는 CPU
- DMA (Direct Memory Access)
- : 유튜브 영상을 보는것과 같이 network가 바로 LCD 로 전송하여 CPU가 하는 연산이 거의 없는 것과 같은 interrupt 구조도 있다.
4.0 - Computer System Components
- CPU
- Processor
- Core
- Multicore - 같은 프로세스 칩 하나에 여러개의 코어로 나눠진것
- Multiprocessor - 멀티코어가 여러개 있는 것
4.1 - Symmetric multiprocessing (SMP)
- 하나의 메모리가 여러개의 CPU ( 레지스터, 캐시를 포함한 )를 관리
- 슈퍼컴퓨터...
4.2 - Multiprogramming
- 여러개의 프로그램을 동시에 실행되고 있는 것
- 여러개의 프로세스가 메모리에 동시에 올라가 있는 것
- CPU 사용 효율을 늘릴 수 있다
4.3 - Multitasking ( = multiprocessing )
- 멀티프로그래밍의 연장 (?)
- 우리가 동시에 여러가지 프로그램을 실행시키는데 이를 CPU가 자주 왔다갔다하며 실행시키는데 이를 통해서 우리는 동시에 여러 프로그램을 사용할 수 있는 것
- CPU scheduling
- : CPU 효율을 가장 좋게 쓸수 있도록 하는 것
5.0 - mode of operation
- 유저모드 / 커널모드
- kernel mode 에서만 할 수 있는 것들이 있다 (예 : system call)
6.0 - Virtualization (가상화)
- VMM (Virtual Machine Manager)
- : VMware, XEN, WSL
- 가상머신을 통하여 하드웨어 위에 O/S를 돌리는것
7.0 - Computing Environments 의 종류
- Traditional Computing
- Mobile Computing : 요즘 많이 쓰인다
- Client-Server Computing : 대표적인 예는 web
- Peer-to-Peer Computing : 음악/영화 등 공유, 토렌트같은 것
- Cloud Computing : AWS, Azure, GCP
- Real-Time Embedded System : 화성탐사봇, 라즈베리파이 등 (RTOS)
8.0 - OS 에 interface 하기위한 방법
- CLI : shell
- GUI : window, mac
- Touch-Screen Interface : Android
8.1 - System call
- OS가 제공하는 서비스들 (write, read 등)
- API : OS 의 API 가 system call
- 일일이 커널모드에 들어가게 해서 실행하기 번거로우니 라이브러리 등을 사용한다
- ⇒ stdio.h 의 printf 등
'운영체제' 카테고리의 다른 글
06. 프로세스간 통신의 실제 (0) | 2021.09.06 |
---|---|
05. 프로세스간 통신 (0) | 2021.09.05 |
04. 프로세스의 생성 (0) | 2021.09.04 |
03. 프로세스의 이해 (0) | 2021.09.03 |
01. 운영체제 기초 (0) | 2021.09.01 |