OS란 무엇일까?
- OS는 유저와 하드웨어 사이의 인터페이스 역할을 한다.
-가상머신을 이용하여 하드웨어만 있을때 보다 프로그램 실행에 도움을 준다.
- OS는 표준 서비스를 제공하고 하드웨어 위에서 실행된다.
- 프로세스, CPU 스케줄링, 메모리 관리자, 파일 시스템, 네트워크 등이 있다.
- OS는 다양한 앱과 사용자를 균일하고 효율적인 방법으로 조직화해준다.
- OS의 목표는 더욱 편안하고 효율적인 기계를 만들기 위해 개발되었다.
(소프트웨어적인 문제와 엔지니어링적인 문제에 대해)
OS가 제공해주는 몇가지 기능들
Concurrency(동시실행)
- 많은 프로세스들이 한번에 움직인다.
- 프로세스들은 서로 소통할 수 있게 되었다.
- 프로세스들은 몇몇 리소스에 상호 배타적인 접근을 요구할지도 모른다.
- cpu 스케줄링, 리소스 관리자들이 예이다.
메모리 관리자 - 프로세스들이 메모리에 할당되고, 프로세스들이 디스크와 메모리 사이를 움직이도록 도와준다.
파일 시스템 - 프로그램과 디스크에 있는 데이터에 저장공간을 할당한다.
네트워크와 분산 컴퓨팅 - 컴퓨터들이 함께 일할 수 있도록 허락한다.
Input/Output(I/O)
CPU와 디바이스 컨트롤러는 모두 통신을 위해 같은 버스를 사용한다.
소프트웨어 풀링으로 I/O를 동기화한다.
- I/O가 vectored inturrupt를 보내기 전까지 CPU는 I/O를 실행시키고 계속 감시한다.
- 디바이스 컨트롤러는 디바이스와 통신하기위한 레지스터를 가지고 있다.
- input register, output register - for data
- control register - to tell it what to do
- status register - to see what it's done
Synchronous I/O : CPU는 I/O가 진행하는동안 기다렸다가 인터럽트가 오면 그 뒤에 다시 일을한다.
Asynchronous I/O : I/O가 실행하는 동안 동시에 CPU도 다른일 실행한다.
인터럽트를 기본으로하는 asynchronous I/O
- 디바이스 컨트롤러는 자신의 프로세서를 가지고 있고, CPU와 비동기적으로 실행한다.
- 디바이스 컨트롤러는 CPU의 관심이 필요할 때 시그널 인터럽트를 버스에 둔다.
-CPU가 인터럽트를 받을때
1. CPU상태를 저장하고 벡터 인터럽트를 이용하여 적절한 인터럽트 핸들러를 부른다.
2. 핸들러는 반드시 소프트웨어 상태를 저장하고 복원한다.
3. CPU는 CPU상태를 복원한다.
'Applied > Operating System(OS)' 카테고리의 다른 글
CPU,GPU, GPGPU (0) | 2018.09.30 |
---|---|
뮤텍스(Mutex), 세마포어(Semaphore), 모니터(Monitor) (0) | 2018.05.05 |
커널 레벨 스레드 vs 사용자 레벨 스레드 (0) | 2018.05.01 |
thread를 이용한 Unsafe Region 관찰 (0) | 2018.02.27 |
unique_lock를 이용한 Producer and Consumer (0) | 2018.02.27 |