컴퓨터 시스템의 구조
2021. 10. 14. 23:00
컴퓨터 시스템의 구조
운영체제란?
- 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층
- 자원들을 관리한다.
- 프로세서, 기억장치, 입출력 장치 등의 효율적 관리
- 사용자 및 운영체제 자신의 보호
- 프로세스, 파일, 메시지 등을 관리
- 자원들을 관리한다.
- 협의의 운영체제(커널)
- 운영체제의 가장 핵심적인 부분
- 메모리에 상주하는 부분
- 광의의 운영체제
- 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념
- 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공
운영체제의 분류
- 동시 작업 가능 여부
- 단일 작업 (single tasking)
- 한번에 하나의 작업만 처리
- 다중 작업(multi tasking)
- 동시에 두 개 이상의 작업(프로세스) 처리
- 단일 작업 (single tasking)
- 사용자의 수
- 단일 사용자 (single user)
- MS-DOS, MS Windows
- 다중 사용자 (multi user)
- UNIX, NT Server
- 단일 사용자 (single user)
- 처리 방식
- 일괄 처리(batch processing)
- 작업 요청의 일정량 모아서 한꺼번에 처리
- 작업이 완전 종료될 때까지 기다려야함
- 시분할 (time sharing)
- 여러 작업을 수행할 때 수행할 때 컴퓨터 처리 능력을 일정한 시간 단위로 분할하여 사용
- 일괄 처리 시스템에 비해 짧은 응답시간을 가짐
- interactive한 방식 (결과가 거의 바로 나옴)
- 실시간 (RealTime OS)
- 정해진 시간 안에 어떠한 일이 반드시 종료됨이 보장되어야 하는 실시간 시스템을 위한 OS (데드라인이 있음)
- 원자로/공장 제어, 미사일 제어, 반도체 장비 등
- 일괄 처리(batch processing)
- 현대의 운영체제는 ` 다중 작업 ` , `다중 사용자` , `시분할` 방식이다.
컴퓨터 시스템 구조
Mode bit
- 사용자 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가 가지 않도록 하기 위한 보호 장치
- 1 사용자 모드 : 사용자 프로그램 수행
- 0 모니터 모드 : OS 코드 수행
- 모니터 모드 = 커널모드, 시스템 모드
- 보안을 해칠 수 있는 중요한 명령어는 모니터 모드에서만 수행 가능한 '특권 명령'으로 규정
- interrupt나 Exception 발생시 하드웨어가 mode bit을 0으로 바꿈
- 사용자 프로그램에게 CPU를 넘기기 전에 mode bit을 1로셋팅
- 즉, 관리자가 접근하냐, 일반 사용자가 접근하냐를 구분한다는 것
Timer
- 정해진 시간이 흐른 두 ㅣ운영체제에게 제어권이 넘어가도록 인터럽트를 발생시킴
- 타이머는 매 클럭 틱 때마다 1씩 감소
- 타이머 값이 0이 되면 타이머 인터럽트 발생
- CPU를 특정 프로그램이 독점하는 것으로부터 보호
- ex) 무한루프를 도는 경우
Interrupt
- 현대의 운영체제는 인터럽트에 의해 구동됨
- CPU의 Inturrupt line에 인터럽트가 들어옴
- 인터럽트 당한 시점의 레지스터와 program counter(PC)를 save한 후 CPU의 제어를 인터럽트 처리 루틴에 넘김
- 시스템 콜
- 사용자 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출하는 것
- 사용자 프로그램이 운영체제에게 부탁하는 것(IO를 사용하기 위해, **특권명령**)
- Interrupt (넓은 의미)
- Interrupt (하드웨어 인터럽트) : 하드웨어가 발생시킨 인터럽트 -> 진정한 의미의 인터럽트라 할 수 있다.
- Trap (소프트웨어 인터럽트)
- Exception : 프로그램이 오류를 범한 경우
- System call : 프로그램이 커널 함수를 호출하는 경우
- 인터럽트 관련 용어
- 인터럽트 벡터
- 해당 인터럽트의 처리 루틴 주소를 가지고 있음
- 인터럽트 처리 루틴 (Interrupt Service Routine, 인터럽트 핸들러)
- 해당 인터럽트를 처리하는 커널 함수
- 인터럽트 벡터
Device Controller
- I/O device controller
- 해당 I/O 장치유형을 관리하는 일종의 작은 CPU (하드웨어임)
- 제어 정보를 위해 control register, status register를 가짐
- local buffer를 가짐 (일종의 data register)
- I/O는 실제 device와 local buffer 사이에서 일어남
- Device Controller는 I/O가 끝났을 경우 interrupt로 CPU에 그 사실을 알림
동기식 입출력과 비동기식 입출력
- 동기식 입출력 (synchronous I/O)
- I/O 요청 후 입출력 작업이 완료된 후에야 제어가 사용자 프로그램에 넘어감
- IO요청을 하고 끝나야 다시 작업 시작
- 비동기식 입출력(asynchronous I/O)
- I/O가 시작된 후 입출력 작업이 끝나기를 기다리지 않고 제어가 사용자 프로그램에 즉시 넘어감
- IO에 요청 넘기고 작업은 계속 진행함
- 두 경우 모두 I/O의 완료는 인터럽트로 알려줌
DMA (Direct Memory Access)
- 빠른 입출력 장치를 메모리에 가까운 속도로 처리하기 위해 사용
- CPU 중재 없이 device controller가 device의 buffer storage의 내용을 메모리에 block 단위로 직접 전송
- 바이트 단위가 아니라 block 단위로 인터럽트를 발생시킴
- 1byte 들어올때 마다 인터럽트를 발생시키는 것이 아니라 DMA를 통해 메모리에 직접 접근 (CPU를 거칠 필요 없음)
'CS > 운영체제' 카테고리의 다른 글
Process Management (0) | 2021.10.20 |
---|---|
Process & Thread (0) | 2021.10.19 |
운영체제 개요 (0) | 2021.10.13 |
[운영체제] 데드락(deadlock, 교착상태) (0) | 2021.05.19 |
[운영체제] 뮤텍스, 세마포어 (0) | 2021.05.12 |