✔ 컴퓨터 시스템의 동작 원리
컴퓨터의 구성
- 하드웨어 : 컴퓨터를 구성하는 기계적 장치
- 중앙처리장치(CPU) : 주기억장치에서 프로그램 명령어와 데이터를 읽어와 처리하고 명령어의 수행 순서를 제어
- 기억장치 : 프로그램, 데이터, 연산의 중간 결과를 저장하는 장치 (RAM, HDD)
- 입출력 장치 : 컴퓨터 내부로 자료를 입력하거나 외부로 표현하는 장치 (마우스, 프린터)
- 시스템 버스 : 하드웨어 구성 요소를 물리적으로 연결하는 선으로 데이터를 보내는 통로가 되어줌 (데이터/주소/제어 버스)
- 소프트웨어 : 하드웨어의 동작을 지시하고 제어하는 명령어 집합
- 시스템 소프트웨어 : 운영체제, 컴파일러
- 응용 소프트웨어 : 워드프로세서, 스프레드시트
중앙처리장치(CPU)의 작동 원리
- CPU는 연산장치, 제어장치, 레지스터로 구성
- CPU의 동작 과정
- 주기억장치는 입력장치에서 입력받은 데이터 또는 보조기억장치에 저장된 프로그램을 읽어옴
- CPU는 프로그램을 실행하기 위해 주기억장치에 저장된 프로그램 명령어와 데이터를 읽어와
처리하고 결과를 다시 주기억장치에 저장 - 주기억장치는 처리 결과를 보조기억장치에 저장하거나 출력장치로 보냄
- 제어 장치는 명령어가 순서대로 실행되도록 각 장치를 제어
- 인출 사이클과 실행 사이클에 의한 명령어 처리 과정
- 프로그램 카운터(PC) 값에 저장된 주소를 메모리 주소 레지스터(MAR)로 전달
- 전달된 내용을 토대로 주기억장치의 해당 주소에서 명령어 인출
- 인출한 명령어를 메모리 버퍼 레지스터(MBR)에 저장
- 다음 명령어를 인출하기 위해 프로그램 카운터(PC) 값을 증가시킴
- 메모리 버퍼 레지스터(MBR)에 저장된 내용을 명령어 레지스터(IR)에 전달
인터럽트란?
- 인터럽트 : 프로그램을 실행하는 도중에 예기치 않은 상황이 발생할 경우 현재 실행 중인 작업을 즉시 중단하고,
발생된 상황에 대한 우선 처리가 필요함을 CPU에게 알리는 것- 외부 인터럽트 : 입출력 장치, 타이밍 장치, 전원 등 외부적인 요인으로 발생
- 내부 인터럽트 : 잘못된 명령이나 데이터를 사용할 때 발생
- 소프트웨어 인터럽트 : 프로그램 처리 중 명령의 요청에 의해 발생
- 인터럽트 발생 처리 과정
- 주 프로그램 실행
- 인터럽트 발생
- 현재 수행 중인 프로그램을 멈추고, 상태 레지스터와 PC 등(복귀주소)의 프로세스 정보를 스택(프로세스 제어 블록)에 저장
- 인터럽트 발생 시 처리해야 할 루틴(인터럽트 핸들러, 인터럽트 서비스 루틴)의 주소를 보관하는 있는 인터럽트 벡터로 점프
- 인터럽트 처리
- 인터럽트 처리 완료
- 복귀주소 로드
- 마지막에 실행되던 주소로 점프
- 주 프로그램 실행
- 컨트롤러가 입력을 받아들이는 방법
- 폴링 방식 : 사용자가 명령어를 사용해 입력 핀의 값을 계속 읽어 변화를 알아내는 방식
- 인터럽트 방식 : MCU(마이크로 컨트롤러 유닛)가 하드웨어적으로 변화를 체크하여 변화 시에만 일정한 동작을 하는 방식
- 인터럽트 기능이 없었다면, 컨트롤러는 특정한 어떤 일을 할 시기를 알기 위해 계속 체크를 해야 함
인터럽트 방식은 하드웨어로 지원을 받아야 하는 제약이 있지만,
폴링에 비해 신속하게 대응하는 것이 가능하므로 실시간 대응이 필요할 때는 필수적인 기능
즉, 인터럽트는 발생시기를 예측하기 힘든 경우에 컨트롤러가 가장 빠르게 대응할 수 있는 방법
'Tech Interview > Operating System' 카테고리의 다른 글
[Operating System] 프로세스 동기화 (0) | 2023.12.15 |
---|---|
[Operating System] CPU 스케줄링 (0) | 2023.12.14 |
[Operating System] IPC (0) | 2023.12.13 |
[Operating System] 프로세스와 스레드 (0) | 2023.12.12 |
[Operating System] 운영체제 (0) | 2023.12.04 |