📌 순서
- 컴퓨터 시스템 핵심요소
- 사용자 모드와 모니터 모드
- 인터럽트(Interrupt)
- 프로그램 카운터(Program counter)
- 시스템 콜(System call)
CPU는 흔히 컴퓨터의 뇌에 해당하는 부품이라고 불린다. 외부에서 정보를 입력받고, 기억하고, 명령어를 해석하여 연산하고 외부로 출력하는 역할을 한다. 기계어로 쓰인 컴퓨터 프로그램의 명령어를 해석하여 실행한다.
사용자가 자유롭게 내용을 읽고 쓰고 지울 수 있는 기억장치(Memory)를 말한다. 동작에 필요한 모든 내용은 전원이 유지되는 동안 이 기억장치에 저장된다. 전원이 꺼지면 사라지는 휘발성 기억장치이다.
보조기억장치인 하드 디스크는 영구 기억 장치이다. RAM에 비해 데이터를 쓰고 읽는데 속도가 느린 대신, 한번 저장된 데이터는 물리적 충격이 없는 이상 계속 보존된다.
HDD✔️
HDD같은 경우 자기장을 이용해 전하량으로 0과 1을 구분하여 저장한다.
긴 세월이 지나 전하량이 자연스럽게 변하거나 자석의 영향을 받으면 데이터가 손상될 수 있다.
SSD✔️
SSD는 셀에 전자를 저장하고 이를 기준으로 전류를 통제해 디지털 신호를 표현한다. 따라서 자성 저장매체가 아니고, 반도체 저장매체이기 때문에 자석으로부터 큰 영향을 받지 않는다.
직접 돌아가는 디스크에서 헤더가 정보를 찾는 방식인 HDD보다 안정적이고, 충격에 강하다. 정보를 쓰고 읽는 속도도 HDD보다 훨씬 빠르고, 그 외에도 적은 소음이나 가벼운 무게 등 여러 장점을 갖고 있다.
그만큼 가격도 비싸다.
입출력 장치는 사용자의 입력을 받아오거나 정보를 출력하는 장치이다.
대표적으로 모니터, 키보드, 마우스, 프린터, 스피커 등이 있다.
하드웨어 장치이긴 하지만 효율적으로 컴퓨터와 데이터를 주고받기 위해
Device controller
와Local buffer
라는 소프트웨어를 가지고 있다.
Mode bit
는 사용자 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가 가지 않도록 하기 위한 보호 장치이다. 하드웨어적인 Mode bit 조작을 통해 두가지 모드를 지원할 수 있다.
사용자 모드(1)✔️
사용자 프로그램을 수행한다.
모니터 모드(0)✔️
커널 모드, 시스템 모드라고도 한다. 운영체제 코드를 수행한다. 보안을 해칠 수 있는 중요한 명령어는 모니터 모드에서만 수행이 가능한 '특권명령'으로 규정되어 있다.
👉🏻
Interrupt
나Exception
이 발생할 시 하드웨어가 mode bit을 0으로 변경한다.
👉🏻 사용자 프로그램에게 CPU를 넘기기 전에 mode bit을 1로 변경한다.
인터럽트는 컴퓨터 시스템에서 발생하는 이벤트나 신호이다.
인터럽트 신호를 받으면 CPU의 정상적인 실행 흐름이 중단되고, 인터럽트 당한 시점의 레지스터와 Program counter를 저장한다. 그 후 CPU의 제어를 통해 운영체제 또는 하드웨어의 특정 처리루틴이 실행된다. 인터럽트 처리가 끝나면 이전 작업 상태를 복구하고, 작업 수행을 재개한다.
하드웨어 인터럽트(Interrupt)✔️
하드웨어가 발생시킨 인터럽트
소프트웨어 인터럽트(Trap)✔️
사용자 프로그램이 발생시킨 인터럽트
👉🏻 Exception: 프로그램이 오류를 범한 경우
👉🏻 System call: 프로그램이 커널 함수를 호출하는 경우
인터럽트 벡터✔️
해당 인터럽트 처리 루틴 주소를 가지고 있음
인터럽트 처리 루틴(Interrupt Service Routine, 인터럽트 핸들러)✔️
👉🏻 해당 인터럽트를 처리하는 커널 함수
👉🏻 인터럽트에서 무슨 일을 해야 하는지 정의함
프로그램 카운터는 CPU 내의 레지스터(Register)중 하나로, 다음 번에 실행할 기계어 메모리 주소를 갖고 있다. 이 특성 때문에 명령어 포인터라고도 한다.
시스템 콜은 사용자 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출하는 것이다. 시스템 콜은 일반적으로 각 운영체제에 따라 고유한 번호나 식별자로 구분된다.
- A. Silberschatz et al., Operating System Concepts, 9th Edition, John Wiley & Sons, Inc. 2013.
- A. Silberschatz et al., Operating System Principles, Wiley Asia Student Edition
- 반효경님, 운영체제와 정보기술의 원리
글 잘 봤습니다.