-
[OS] 컴퓨터 시스템의 동작 원리OS 2021. 7. 17. 16:44
컴퓨터 시스템의 동작 원리
컴퓨터 시스템 구조
1. CPU
중앙처리장치라 불리는 CPU는 인간의 두뇌와 같은 역할을 합니다. 중앙처리장치(central processing unit) 라는 말 그대로 중앙에서 사용자가 입력한 명령어를 해석하고 연산한 후 그 결과를 알려준다.
2. 메모리
랜덤 액세스 메모리(Random Access Memory) 즉, 램(RAM)은 임의의 영역에 접근하여 읽고 쓰기가 가능한 주기억 장치다. RAM은 어느 위치에 저장된 데이터든지 접근(읽기 및 쓰기)하는 데 동일한 시간이 걸리는 메모리이기에 ‘랜덤(Random, 무작위)’이라는 명칭이 주어진다.
3. 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에 그 사실을 알림
device driver(장치구동기)os 코드 중 각 장치별 처리루틴 -> software
device controller(장치제어기)각 장치를 통제하는 일종의 작은 cpu -> hardware4. Interrupt line
CPU로 인터럽트 신호를 보낼 수 있는 하드웨어 라인
5. Mode bit
사용자 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가 가지 않도록 하기 위한 보호장치가 필요 Mode bit을 통해 하드웨어적으로 두 가지 모드의 operation 지원
1 사용자 모드 : 사용자 프로그램 수행
0 모니터 모드 : OS 코드 수행 (= 커널 모드, 시스템 모드)- 보안을 해칠 수 있는 중요한 명령어는 모니터 모드에서만 수행 가능한 ‘특권명령’ 으로 규정
- Interrupt나 Exception 발생시 하드웨어가 mode bit을 0으로 변경
- 사용자 프로그램에게 CPU를 넘기기 전에 mode bit을 1로 변경
6. Timer
- 정해진 시간이 흐른 뒤 운영체제에게 제어권이 넘어가도록 인터럽트를 발생
- 타이머는 매 클럭 틱 때마다 1씩 감소
- 타이머 값이 -(마이너스)가 되면 타이머 인터럽트 발생
- CPU를 특정 프로그램이 독점하는 것으로부터 보호
타이머는 time sharing을 구현하기 위해 널리 이용며 현재 시간을 계산하기 위해서도 사용합니다.
7. DMA Controller
메모리에 접근할 수 있는 장치는 CPU가 유일하다. 메모리는 CPU의 작업 공간이다. I/O장치나 다른 장치들이 접근 할 수 없다. 그렇다보니 1ms 마다 인터럽트가 발생한다면 CPU는 계속해서 자잘한 인터럽트를 처리해야하는 문제가 생긴다. 때문에 이를 해결하기 위해 메모리에 접근 할 수 있도록 도와주는 장치가 DMA 컨트롤러이다.
- 빠른 입출력 장치를 메모리에 가까운 속도로 처리하기 위해 사용
- CPU의 중재 없이 device controller가 device의 buffer storage의 내용을 메모리에 block 단위로 직접 전송
- 바이트 단위가 아니라 block 단위로 인터럽트를 발생시킴
8. PC(Program counter)
CPU의 레지스터중 하나. pc는 다음번에 실행할 명령어의 주소를 가지고 있다. 하나의 기계어가 종료 이후의 다음 위치를 가리킨다.
References
- 운영체제와 정보기술의 원리
잘못된 코드나 내용이 있다면 댓글을 남겨주세요. 즉시 수정하도록 하겠습니다! :)
'OS' 카테고리의 다른 글
[OS] 프로그램 VS 프로세스 VS 스레드 (0) 2021.07.21 [OS] 프로세스 관리, 프로세스 문맥(context) (0) 2021.07.20 [OS] 프로세스 메모리 구조 (코드, 데이터, 스텍, 힙) (2) 2021.07.19 [OS] 인터럽트(Interrupt) (0) 2021.07.18 [OS] 운영체제 (0) 2021.07.15 - I/O device controller