본문 바로가기

CS/오퍼레이팅 시스템

1. 오퍼레이팅 시스템

* 정의 : 매우 다양한 형태로 개발되어 명확히 정의하기 어려웅

- 오퍼레이팅 시스템의 역할을 분석해서 정의할 수 있음

- 오퍼레이팅 시스템의 주된 역할 : 하드웨어 관리, 프로그램 수행 관리

- 하드웨어 : 입출력장치, 메인메모리, 스토리지, cpu / 하드웨어 관리 : 입출력장치 접근, 파일 접근, accounting, 오류 탐지

- 프로그램 수행 : 스케줄링과 오류 보고

 

- 사용자는 어플리케이션을 통해 하드웨어에 접근

- 어플리케이션 프로그램과 하드웨어 사이에 위치하여 사용자가 하드웨어로 접근하기 쉽도록 함

 

* 운영체제의 목적

- 문제를 더 쉽게해결하기 위해서

- 컴퓨터가 더 쓰기 쉬워지게 되려고

- 하드웨어를 더 효율적으로 사용하기 위해서

 

* 운영체제의 정의

1. 하드웨어를 효과적이고 공평하게 할당

2. 프로그램 발생 에러, 수행시 문제점을 보고하여 에러와 부적절한 사용을 예방

+) 오퍼레이팅 시스템의 핵심은 커널임

- 커널 외에 시스템 프로그램과 응용 프로그램이 있음

- 커널의 주된 요소는 프로세스 관리, 메모리관리, 입출력 관리, 파일시스템 관리가 있음

- 커널에 있는 것은 반드시 수행해야하는 프로그램들임

 

* os is a resource manager

- 모바일, 노트북, 데스크탑, 대용량 시스템 등 다양한 컴퓨터 시스템이 존재

- 어떤 시스템이라도 하드웨어 구성요소는 cpu, 메모리, io장치, 스토리지임

 

-프로그램은 메인 메모리에 저장되고 입출력 장치로 입력받아서 수행

- 하나이상의 cpu와 장치들이 메모리 공유를 위해 bus로 연결되어 있음

- 메모리를 공유하면서 interaction

- cpu와 장치들이 메모리 차지를 위해 경쟁하며 동시 실행됨

 

* 네가지 주요 원칙

1. io 연산

2. io 구조

3. 인터럽트

4. 스토리지 구조

-> 멀티프로세서 시스템, 멀티코어의 대중화

 

* 컴퓨터시스템의 입출력 연산

- 모든 디바이스는 로컬 버퍼가 있다.

- 데이터 : 메인메모리 <->로컬버퍼 이동

- 입출력 장치와 cpu가 동시 실행 가능 : DMA

- 인터럽트를 통해서 디바이스 컨트롤러가 CPU에게 연산을 마쳤다고 알림

 

*IO 구조

- IO transaction은 bus를 통해 수행

- bus : 주소 값, 데이터, 제어 신호를 운반하는 평행선의 집합

  system bus : cpu와 io를 연결

  memory bus : io와 메모리를 연결

  io bus : 여러 장치들이 연결

- DMA : direct memory access  : io연산이 cpu 간접 없이 수행되는 것

              장치가 cpu간섭없이 읽고 쓰는 bus transaction을 수행하는 프로세스

              DMA로 인해서 cpu가 전송을 시작하고 전송이 진행되는 동안 다른 작업을 수행할 수 있다.

 1. 로컬 버퍼에 데이터 로드

 2. 수행을 위해 디스크로부터 메인메모리로 데이터 이동

 3. 수행, cpu의 간섭이 필요 없음

 4. 수행이 끝나면 interrupt

- DMA 지원이 안되면 IO연산과 CPU 병렬 수행이 불가능하다.