2021-9-18 운영체제 (2주차)
운영체제의 분류
- 동시 작업 가능 여부
- 사용자의 수
- 처리 방식
동시 작업 가능 여부
- 단일 작업(single tasking)
한 번에 하나의 작업만 처리
- 다중 작업(multi tasking)
동시에 두 개 이상의 작업 처리
사용자의 수
- 단일 사용자 - ex) MS-DOS, MS Windows
- 다중 사용자 - ex) UNIX, NT server
처리 방식
- 일괄 처리(batch processing)
- 작업 요청의 일정량 모아서 한꺼번에 처리
- 작업이 완전 종료될 때까지 기다려야함
- ex) 초기 Punch Card 처리 시스템
- 시분할(time sharing)
- interactive한 방식
- 여러 작업을 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
- 일괄 처리 시스템에 비해 짧은 응답 시간을 가짐 - ex) UNIX
- 실시간(Realtime OS)
- 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 OS
- ex)원자로/공장 제어, 미사일 제어, 반도체 장비, 로보트 제어
- Hard realtime system (경성 실시간 시스템)
- Soft realtime system (연성 실시간 시스템)
Multiprocessor - 하나의 컴퓨터에 CPU가 여러개 붙어있음을 의미
운영 체제의 예
유닉스(UNIX)
- 코드의 대부분을 C언어로 작성 - 사람이 이해하기 편리
- 높은 이식성 - C언어로 작성했기에
- 최소한의 커널 구조
- 복잡한 시스템에 맞게 확장 용이
- 소스 코드 공개
- 프로그램 개발에 용이
- 다양한 버전
DOS(Disk Operating System)
- MS사에서 IBM-PC를 위해 개발
- 단일 사용자용 운영체제
MS Windows
- 다중 작업용 GUI 기반 운영체제
- 네트워크 환경 강화
- DOS용 응용 프로그램과 호환성 제공
- 불한정성
Mode bit
Mode bit을 통해 하드웨어적으로 두 가지 모드의 operation 지원
1 - 사용자 모드 : 사용자 프로그램 수행
0 - 모니터 모드 : OS 코드 수행
보안을 해칠 수 있는 중요한 명령어는 모니터 모드에서만 수행 가능한 ‘특권명령으로 규정’
CPU의 독점을 막기위해서 timer 존재
- 일정시간 간격으로 인터럽트 발생
- OS 가 CPU를 넘길때 timer에 일정시간 정해놓고 넘겨줌
- CPU 제어권이 자동적으로 OS로 넘어감
인터럽트 (Interrupt)
- CPU제어를 인터럽트 처리 루틴에 넘긴다.
- 하드웨어 인터럽트 : 하드웨어가 발생시킨 인터럽트
- Trap : 소프트웨어 인터럽트
- Exception : 프로그램이 오류를 범한경우
- System call : 프로그램이 커널 함수를 호출하는 경우
시스템콜
- 사용자 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출하는 것
- 소프트웨어가 본인이 직접 할 수 없는 일을 운영체제에게 맡기기 위해 인터럽트를 거는것
동기식 입출력과 비동기식 입출력
- 동기식 입출력 (synchronous I/O)
- I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어감
- I/O 가 끝날때까지 CPU 낭비
- 매 시점 하나의 I/O 만 일어날 수 있음
- I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어감
- 비동기식 입출력(asynchronous I/O)
- I/O가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어감
DMA (Direct Memory Access)
- 빠른 입출력 장치를 메모리에 가까운 속도로 처리하기 위해 사용
- CPU 중재 없이 divice controller 가 device 의 buffer storage 의 내용을 메모리에 block 단위로 직접 전송
- 바이트 단위가 아니라 block 단위로 인터럽트를 발생시킴
- 기존엔 메모리 접근할때 항상 cpu를 거쳐야하기때문에~~ 덜 빈번하게 인터럽트 발생시키는 방식
Written on September 18, 2021