* 정의 : 매우 다양한 형태로 개발되어 명확히 정의하기 어려웅
- 오퍼레이팅 시스템의 역할을 분석해서 정의할 수 있음
- 오퍼레이팅 시스템의 주된 역할 : 하드웨어 관리, 프로그램 수행 관리
- 하드웨어 : 입출력장치, 메인메모리, 스토리지, 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 병렬 수행이 불가능하다.
'CS > 오퍼레이팅 시스템' 카테고리의 다른 글
6. 오퍼레이팅 시스템이 제공하는 서비스 (0) | 2020.04.08 |
---|---|
5. 유저와 커널 (0) | 2020.04.08 |
4. 멀티프로그래밍 : 멀티프로세서, 멀티코어 (0) | 2020.04.07 |
3. 스토리지 구조 Storage Structure (0) | 2020.04.07 |
2. 인터럽트 (0) | 2020.04.07 |