지난 시간, Introduction과 더불어 운영체제의 정의와 역사에 대해 알아보았다. 운영체제를 한마디로 정의한다면 다음과 같다.

"운영체제란 user와 architecture 사이의 interface다."

 

이번 시간에는 운영체제와 컴퓨터 구조에 대해서 살펴보자.

 

단순하게 나타낸 컴퓨터 구조는 다음과 같다.

 

Computer Architecture

 

컴퓨터는 CPU, Memory, I/O 장치, bus로 이루어져 있다. 각각에 대한 자세한 설명은 아래와 같다.

  • CPU : 실제로 연산이 일어나는 프로세서 (최근에는 이 코어가 여러 개 있는 것이 대부분이다.)
  • I/O device : terminal, disk, video board, printer, Network card와 같이 입력출력을 담당하는 장치
  • Memory : CPU가 사용하는 프로그램과 데이터가 담긴 RAM (Random Access Memory; 임의의 영역에서 읽고 쓰기가 가능한 주기억 장치. 휘발성 메모리로 컴퓨터의 체감 속도를 좌우한다.)
  • System bus : CPU, Memory, 주변기기들과 통신하는 매체

 

또한, 최근의 운영 체제는 다음과 같은 기능성을 가진다.

  1. ProcessThread에 의해서 manage된다.
  2. Concurrency (동시성) : 동시에 다양한 업무를 수행할 수 있다.
  3. I/O device : I/O device가 작동 중일 때, CPU의 작업 속도는 느려진다.
  4. Memory management : OS는 메모리를 위치시키고, 주기억 장치와 디스크 사이에서 데이터를 이동시킨다.
  5. Distributed Systems & Networks : 분산된 하드웨어에서 함께 업무를 처리할 수 있다.

 

OS service에서 동기 부여된 Architectural Feature는 다음과 같은데, 하나씩 자세하게 살펴보자.

 

  • Protection

어떤 명령어들은 민감하기 때문에 권한이 필요하다. 이 때 두 가지 모드가 존재하는데, 바로 커널 모드유저 모드이다.

유저는 I/O를 직접 처리할 수 없다. / Memory 상태를 직접 조작할 수 없다. / interupt를 활성화하거나 비활성화 할 수 없다. / 기계를 중지시킬 수 없다. / 유저 모드와 커널 모드를 판별하는 mode bits를 설정할 수 없다.

그러나 커널모드에서는?

모두 가능하다. 위와 같이 보호된 명령어들이 커널모드에서는 모두 수행 가능하다.

이 커널 모드와 유저 모드 사이에서 인터페이스 역할을 하는 것을 'System Call'이라고 부른다.

 

System Call

 

또한 메모리도 보호할 수 있어야 한다.

메모리 보호는 컴퓨터 메모리의 사용을 제어하는 방법으로 실행하고 있는 프로세스가 자신에게 할당되지 않은 영역의 메모리에 접근하는 것을 막음으로써 보호가 가능하다.

 

  • Register

Register는 일반적으로 현재 계산 중인 값을 저장하는 데 사용된다.

특히 Stack Pointer, Frame Pointer, Program Couter 등 특수 목적 Register의 경우, 프로그램의 상태를 저장한다.

Memory Hierarchy 상에서, Rigister는 최상위에 존재한다.

 

Memory Hierarchy

 

  • Traps (a.k.a exception or fault)

Trap이란 예외 상태(page fault, read-only memory에 write, overflow, system call etc.)에 의한 비동기식 interrupt의 한 종류이다.

 

  • I/O Control

I/O Method에는 3가지 방식이 있다.

  1. Synchronous I/O : 데이터가 전송될 때까지 기다려야 하는 방식
  2. Asynchronous I/O : 데이터의 전송을 마치기 전에, 프로세스가 계속하도록 허가하는 방식
  3. Memory-mapped I/O : CPU가 입출력 장치에 접근할 때, 입출력과 메모리의 주소 공간을 분리하지 않고, 하나의 메모리 공간에 취급하여 배치하는 방식

 

  • Virtual Memory

Virtual Memory는 RAM을 관리하는 방법 중 하나로, 각 프로그램에 실제 메모리의 주소가 아닌 가상의 메모리 주소를 할당하는 방식을 말한다. 가상 주소 공간은 MMU(Memory Management Unit)에 의해서 물리 주소로 변환된다. Virtual Memory를 통해 프로그래머는 프로그램이나 데이터가 주메모리에서 어떻게 동작하는지 의식할 필요가 사라졌다.

Virtual Memory

 

'study > CS377 (2014)' 카테고리의 다른 글

CS377: Threads  (0) 2020.03.11
CS377: Scheduling Algorithms  (0) 2020.03.11
CS 377: Processes  (0) 2020.03.11
CS377: Operating System Structures  (0) 2020.03.11
CS 377: Introduction  (0) 2020.02.17

+ Recent posts