Written by JS970
on
on
운영체제 2023-03-13 수업정리
Flow
- Storage
- Computer System Architecture
- 운영 체제는 무엇을 하는가?
- 운영 체제 설계의 목표
Storage
- 주 메모리인 메인 메모리(휘발성), secondary storage인 비휘발성 storage가 존재한다.
- 아래와 같은 계층 구조를 가진다.
- 그림에서 레지스터와 캐시는 운영 체제에서 관리하지 않는다. 운영 체제에서 관리하는 메모리 영역은 메인 메모리부터 2차 저장소 까지의 영역이다.
I/O Device
- 일반적인 컴퓨터의 구조는 아래와 같이 나타낼 수 있다.
- 각 디바이스 컨트롤러들은 담당하고 있는 특정 디바이스 타입에 대해 로컬 버퍼를 가지며, 이를 관리한다. 보통 디바이스 드라이버에 의해 디바이스 컨트롤러가 인식된다.
- CPU는 컨트롤러의 로컬 버퍼로부터 데이터를 읽고 쓰는 작업을 수행한다.
- 이때 인터럽트에 의해 동작한다.
- 디바이스 컨트롤러들은 CPU에 인터럽트를 발생시켜 데이터 전송 종료를 알린다.
DMA(Direct Memory Access)
- I/O디바이스에 의해 CPU인터럽트가 일어나게 되면 이는 곧 CPU의 성능 저하로 이어진다.
- DMA는 이러한 상황을 막기 위해 I/O디바이스에서 메모리 간에 직접 데이터를 주고받는 방식으로 구현한다.
- 아래 그림은 DMA를 적용한 경우와 적용하지 않은 경우의 차이점을 그림으로 나타낸 것이다.
- 두 경우 모두 인터럽트 자체는 발생한다.
- DMA방식의 경우 각 I/O로부터 데이터는 메모리로 직접 전송한다. 그리고 블록 단위로 전송 종료를 알리는 인터럽트를 발생시킨다.
- CPU가 I/O데이터를 메모리에 직접 전송하는 경우 바이트 단위의 인터럽트가 발생한다.
Computer System Architecture
- 컴퓨터 시스템에는 다양한 구조가 존재한다.
- 크게 아래와 같이 분류할 수 있다.
- Single-Processor System
- Multi-Processor System
- Symmetric Multiprocessing Architecture
- 메인 메모리에 연결된 각 프로세서 별로 OS, User, Process를 담당한다.
- Asymmetric Multiprocessing Architecture
- 메인 메모리에 연결된 어떤 프로세서는 OS영역만을 담당하고, 다른 프로세서는 User, Process영역을 담당한다.
- Dual-Core Architecture
- Symmetric Multiprocessing Architecture
- Distributed System
- Clustered System
- Grid Computing System = cluster stystem + WLAN
- 이렇듯 다양한 컴퓨터 시스템 구조가 존재하지만, 본 과정에서는 Single-Processor System을 바탕으로 진행한다.
운영 체제는 무었을 하는가?
- Multiprogramming 지원
- single user는 컴퓨터의 모든 자원을 100% 사용할 수 없다.
- 따라서 multiprogramming을 통해 job을 배분하는 것이 효율적이다.
- 운영 체제는 multiprogramming을 효율적으로 지원하도록 동작한다.
- Timesharing(multitasking) 지원
- 위와 비슷한 맥락으로 CPU는 여러 가지 job을 매우 빠르게 switch하여 user가 동시에 여러 job과 상호작용 하는 것처럼 동작한다.(swapping)
- 이를 위해 운영 체제는 아래와 같은 동작을 지원한다.
- process 관리
- job scheduling
- CPU scheduling
- Virtual memory 지원
- 컴퓨터의 메모리는 아래와 같은 구조를 가진다는 것을 기억하면 위의 내용을 이해하는 데 도움이 된다.
Operating System Operations
- 운영 체제는 interrupt driven방식으로 동작한다.
- 소프트웨어 인터럽트는 trap이라고도 불리며 아래와 같이 두 개의 범주로 나눌 수 있다.
- Software errors(divide by zero, stack overflow ...)
- System Call(Ctrl + C -> HALT)
- 운영 체제는 Infinite loop, deadlock등 여러 상황에 대해 인터럽트를 이용하여 대처할 수 있어야 한다.
- 보통은 Dual-Mode 와 Timer를 이용하여 이러한 상황을 관리한다.
- User mode : 일반적인 instruction 실행 가능
- Kernel mode : privileged instruction + normal instruction 사용 가능
- 아래는 system call에 의한 명령어 실행 도식이다.
- 프로세스 실행 중 발생한 무한 루프 등의 상황에 대해서는 Timer를 이용하여 탈출한다.
- Virtual machine manager등에서는 Multi-Mode로 관리하기도 한다.
결론
- 운영 체제가 하는 일에 대해 요약하면 아래와 같다.
- Process management
- Memory management
- Storage management
- Protection and Security
운영 체제 설계의 목표?
- 운영 체제는 abstraction을 통해 시스템을 편리하고 쉽게 사용할 수 있도록 한다.
- 고성능을 보장한다.
- 높은 throughput, utilization보장
- 어플리케이션 간의 보호를 담당한다 -> isolation등의 방법 사용
- 신뢰성을 보장한다.
- 그 외에도 에너지 효율, 보안, mobility등을 보장한다.