공룡책으로 운영체제를 정리한다. 목차는 다음과 같다.
Ch1. Introduction
Ch2. Operating system structures
Ch3. Process
Ch4. Threads & Concurrency
Ch5. CPU Scheduling
Ch6. Synchronization tools
Ch7. Synchronization examples
Ch8. Deadlocks
Ch9. Main memory
Ch10. Virtual Memory
Ch11. Mass storage systems
Ch12. I/O Systems
Ch13. File system Interface
Ch14. File system Implementation
Ch15. File system Internals
Ch16. Security Ch17. Protection
운영체제란?
컴퓨터 시스템의 근본 목적은 사용자 프로그램을 실행하고, 사용자의 문제의 해결을 보다 쉽게 해주는 데 있다. 이러한 목적을 위해 컴퓨터 하드웨어가 제작되며, 순수 하드웨어만으로는 사용이 쉽지 않아 응용 프로그램이 개발되었다. 다양한 프로그램들은 입출력 장치의 통제와 같이 공통적인 연산을 필요로 한다. 여기에 자원을 제어하고 할당하는 공통 기능을 하나의 소프트웨어로 통합한 것이 운영체제이다.
운영체제는 항상 '커널'에서 작동한다.
운영체제의 가장 중요한 면 : 다중 프로그래밍
컴퓨터 시스템의 구조
부팅이란? (POST -> boot loader)
Processor는 일반적으로 CPU를 말한다. main memory를 보면 ROM과 RAM으로 나누어져 있다.
- ROM: 비휘발성 으로 메모리에서 극히 일부를 차지함 (수 KB)
- RAM: 휘발성 으로 메모리의 대부분을 차지하며 실제 프로그램이 할당됨 (수 MB ~ 수 GB)
컴퓨터의 전원이 켜지면 프로세서(CPU)에서 ROM에 있는 내용을 읽는다. ROM안에는 POST(Power-On Self-Test), 부트 로더(boot loader)가 저장되어 있다. POST는 전원이 켜지면 가장 처음에 실행되는 프로그램으로 현재 컴퓨터의 상태를 검사한다. POST 작업이 끝나면 부트 로더가 실행된다. 부트 로더는 하드디스크에 저장되어 있는 운영체제를 찾아서 메인 메모리(RAM)에 가지고 온다. 이러한 부트 로더의 과정을 부팅이라고 한다.
처음 운영체제 구동시에는 커널모드이지만, 곧 사용자 모드로 전환된다.
저장장치 구조
- 컴퓨터가 Program을 수행하려면 Program이 Main Memory에 있어야 한다.
- 메인 메모리는 일반적으로 CPU가 직접 주소를 지정할 수 있고, 그리고 직접 접근할 수 있는 유일한 대량 메모리이다.
- 이상적으로는, 프로그램과 데이터가 메인 메모리에 영구히 존재하기를 원하지만, 휘발성 저장 장치이다.
- 따라서 대부분의 컴퓨터 시스템은 메인 메모리의 확장으로 보조 저장 장치를 제공한다.
- 보조 저장 장치는 대용량의 데이터를 영원히 보존할 수 있는 비휘발성 저장 장치이다.
- 다양한 저장 장치 시스템 간의 주된 차이점은 속도, 가격, 크기, 휘발성이다.
입출력 구조
- 디바이스 드라이버를 이용하는 인터럽트 구동 방식은 적은 양의 데이터를 전송하는 데에는 문제가 없으나, 디스크 입출력과 같은 대량의 데이터를 전송하는 데에는 높은 Overhead를 초래한다.
- 위의 문제를 해결하기 위해 DMA(Driect Memory Access) 장치가 사용된다.
- DMA를 사용하여 CPU의 개입 없이 (메모리→자신의 버퍼) or (버퍼→메모리)로 데이터 블록 전체를 전송할 수 있다.
운영체제 연산
1) 이중연산 모드
- 현대의 운영체제는 인터럽트 구동 방식이다.
- 운영체제의 적절한 동작을 보장하기 위해 사용자 모드(User Mode)와 커널 모드(Kernel Mode)를 각각 정의하여 사용한다.
- 보통 모드 비트(Mode bit)를 컴퓨터의 하드웨어에 추가하여, 현재 Mode를 구분한다.
- Computer System이 User Application을 위해 실행될 때는, System이 User Mode에 있어야 한다.
- User Application이 운영체제로부터 서비스를 요청하면, User Mode에서 Kernel Mode로 전환해야 한다.
- 운영체제는 항상 커널모드에서 작동한다.
- 이중 모드는 일부 명령을 특권 명령으로 지정함으로써, 잘못된 사용자로부터 운영체제를, 그리고 잘못된 사용자 서로를 보호하는 방법을 제공한다.
2) 인터럽트 나누기
- 비동기식 인터럽트(하드웨어)
우리가 흔히 인터럽트라고 부르는 것. 정해진 기준 없이 예측 불가하게 이벤트가 발생한다.
인터럽트 서비스 루틴을 통해 처리된다.
예시) 타이머 인터럽트, 페이지 폴트
- 동기식 인터럽트(소프트웨어)
우리가 흔히 exception 이라고 부르는 것. 명령어 실행 후 그 결과로 발생한다.
예시) 파일 입출력, 메모리 할당, 네트워크 통신
*(번외)
A가 키보드에서 눌렸을 때 프로그램 동작할 때까지 설명해봐라!!
(device control , interrupt 등등 용어를 활용하며 답변할 수 있어야함.. 컴퓨터에 대한 이해)
레퍼런스
1)
공룡책으로 정리하는 운영체제 - CHAPTER 1
해당 포스트는 Abraham Silberschatz, Peter B. Galvin, Greg Gagne의 『Operating System Conce...
blog.naver.com
2)
[운영체제(OS)] 1. 운영체제란?
운영체제(Operating System)는 사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어이다. 우리가 일반적으로 컴퓨터를 사용하면서 실행한 모든 프로그램들은 운영체제에서 관리하고 제어한다. 대표
velog.io
3)
SP - 1.2 Exception Details & Process
동기식과 비동기식 예외를 구분하는 가장 좋은 비유는 아래와 같다.동기식 예외는, 햄버거를 주문했을 때 카운터에서 가만히 기다리는 것이고, 비동기식 예외는 햄버거를 주문해놓고 다른 일
velog.io
'TABA > 운영체제' 카테고리의 다른 글
[공룡책] Ch6. Synchronization tools 정리 (0) | 2024.01.23 |
---|---|
[공룡책] Ch5. CPU Scheduling 정리 (0) | 2024.01.23 |
[공룡책] Ch4. Threads & Concurrency 정리 (0) | 2024.01.12 |
[공룡책] Ch3. Process 정리 (0) | 2024.01.12 |
[공룡책] Ch2. Operating system structures 정리 (0) | 2024.01.12 |