운영체제란?
운영체제란?
역할
- CPU 스케줄링
- 메모리 관리
- 프로세스 관리
- 입출력 관리
- 파일 관리
시스템구조
- CPU
- Mode bit : 현재 CPU를 사용하는 주체를 판단, 사용자 모드에서는 위험한 명령어를 제한시킨다
- OS가 사용할 때는 0 [커널 모드]
- 사용자 프로세스가 사용할 때는 1 [사용자 모드]
- Interrupt Line : CPU로 요청이 들어온 인터럽트를 보관
- 인터럽트가 존재하면 사용중이던 CPU를 OS에게 할당한다
- CPU를 할당받은 OS는 해당 프로세스를 block -> wait 상태를 전환시킨다
- Mode bit : 현재 CPU를 사용하는 주체를 판단, 사용자 모드에서는 위험한 명령어를 제한시킨다
- Memory : CPU의 작업공간
- 오직 CPU만 접근 가능
- 부팅시 운영체제가 메모리에 적재된다.
- I/O Device
- 입출력장치 : 디스크, 키보드, 마우스, 프린터, 모니터 등
- Device Controller : I/O장치를 관리하는 작은 장치(CPU)
- Buffer : 디바이스 컨트롤러의 작은 작업공간(메모리)
- Timer : 해당 주기마다 인터럽트를 발생시킨다(타이머 인터럽트)
- 특정 사용자 프로세스에서 무한루프에 빠져 CPU를 독점하는 것을 막는다.
- DMA(Direct Memory Access) Controller
- CPU만 접근가능한 메모리를 CPU의 중재 없이 접근 가능하게 하는 장치
- 디바이스 컨트롤러가 자신의 버퍼에 있는 결과값을 직접 메모리에 전송 가능하게 해준다
- 인터럽트가 너무 자주 걸리는 것을 막기 위해 특정 사이즈(블록) 단위로 인터럽트 발생시킨다
- 인터럽트
- 인터럽트가 발생하면 사용중이던 CPU를 OS에게 할당한다
- CPU는 해당 장치의 버퍼에 가서 데이터를 읽어와 메모리에 올린다
- 하드웨어 인터럽트 : I/O장치에 의해 발생, I/O장치가 CPU에게 작업이 완료됐음을 알리는 것
- 소프트웨어 인터럽트 : 시스템콜(사용자 프로그램에 의해 발생)
- 시스템콜 : 사용자 프로그램이 운영체제의 서비스를 받기 위해 시스템을 호출하는 것
- 해당 사용자 프로그램이 직접 인터럽트를 발생
- 그 결과 CPU는 운영체제에게 할당되어 운영체제가 동작한다
멀티프로그래밍, 멀티태스킹, 멀티프로세싱, 멀티쓰레딩
멀티태스킹 = 멀티프로그래밍
→ 다수의 프로그램을 동시에 실행한다는 것을 동일하다
→ 다만, 관점의 차이이다
-
멀티태스킹 : 다수의 프로그램을 동시에 실행하는 것
- 멀티프로그래밍 : 하나의 프로세서에서 다수의 프로그램을 동시에 실행하는 것
- 다수의 프로그램이 메모리에 적재되어 있는데 운영체제 스케줄링에 의해 번갈아서 처리
- 실제로는 하나의 프로세스에 CPU가 할당 되지만 시분할을 통해 동시에 사용하는 것 처럼 느낄 수 있다
- 프로세서의 자원낭비를 막음
-
멀티프로세싱 : 다수의 프로세서에서 다수의 프로그램을 동시에 실행하는 것
- 멀티쓰레딩 : 하나의 프로세서에서 다수의 쓰레드를 돌리는 것