[OS] 컴퓨터 시스템 구조 1

정의정·2023년 7월 23일
0

OS

목록 보기
2/6
post-thumbnail

💡 컴퓨터 시스템 구조 1

📌 순서

  1. 컴퓨터 시스템 핵심요소
  2. 사용자 모드와 모니터 모드
  3. 인터럽트(Interrupt)
  4. 프로그램 카운터(Program counter)
  5. 시스템 콜(System call)

🌟 컴퓨터 시스템 핵심 요소

1. 중앙 처리 장치(Central Processing Unit : CPU)

CPU는 흔히 컴퓨터의 뇌에 해당하는 부품이라고 불린다. 외부에서 정보를 입력받고, 기억하고, 명령어를 해석하여 연산하고 외부로 출력하는 역할을 한다. 기계어로 쓰인 컴퓨터 프로그램의 명령어를 해석하여 실행한다.

2. 주기억장치(Random Access Memory:RAM)

사용자가 자유롭게 내용을 읽고 쓰고 지울 수 있는 기억장치(Memory)를 말한다. 동작에 필요한 모든 내용은 전원이 유지되는 동안 이 기억장치에 저장된다. 전원이 꺼지면 사라지는 휘발성 기억장치이다.

3. 보조기억장치(Hard Disk Drive:HDD, Solid State Drive:SSD)

보조기억장치인 하드 디스크는 영구 기억 장치이다. RAM에 비해 데이터를 쓰고 읽는데 속도가 느린 대신, 한번 저장된 데이터는 물리적 충격이 없는 이상 계속 보존된다.

HDD✔️

HDD같은 경우 자기장을 이용해 전하량으로 0과 1을 구분하여 저장한다.

긴 세월이 지나 전하량이 자연스럽게 변하거나 자석의 영향을 받으면 데이터가 손상될 수 있다.

SSD✔️

SSD는 전자를 저장하고 이를 기준으로 전류를 통제해 디지털 신호를 표현한다. 따라서 자성 저장매체가 아니고, 반도체 저장매체이기 때문에 자석으로부터 큰 영향을 받지 않는다.

직접 돌아가는 디스크에서 헤더가 정보를 찾는 방식인 HDD보다 안정적이고, 충격에 강하다. 정보를 쓰고 읽는 속도도 HDD보다 훨씬 빠르고, 그 외에도 적은 소음이나 가벼운 무게 등 여러 장점을 갖고 있다.

그만큼 가격도 비싸다.

4. 입출력 장치(I/O Unit)

입출력 장치는 사용자의 입력을 받아오거나 정보를 출력하는 장치이다.

대표적으로 모니터, 키보드, 마우스, 프린터, 스피커 등이 있다.

하드웨어 장치이긴 하지만 효율적으로 컴퓨터와 데이터를 주고받기 위해 Device controllerLocal buffer라는 소프트웨어를 가지고 있다.


🌟 사용자 모드와 모니터 모드

Mode bit 는 사용자 프로그램의 잘못된 수행으로 다른 프로그램 및 운영체제에 피해가 가지 않도록 하기 위한 보호 장치이다. 하드웨어적인 Mode bit 조작을 통해 두가지 모드를 지원할 수 있다.

1. Mode bit를 통해 하드웨어적으로 두가지 모드의 Operation을 지원한다.

사용자 모드(1)✔️

사용자 프로그램을 수행한다.

모니터 모드(0)✔️

커널 모드, 시스템 모드라고도 한다. 운영체제 코드를 수행한다. 보안을 해칠 수 있는 중요한 명령어는 모니터 모드에서만 수행이 가능한 '특권명령'으로 규정되어 있다.

👉🏻 InterruptException이 발생할 시 하드웨어가 mode bit을 0으로 변경한다.
👉🏻 사용자 프로그램에게 CPU를 넘기기 전에 mode bit을 1로 변경한다.


🌟 인터럽트(Interrupt)

인터럽트는 컴퓨터 시스템에서 발생하는 이벤트신호이다.

인터럽트 신호를 받으면 CPU의 정상적인 실행 흐름이 중단되고, 인터럽트 당한 시점의 레지스터와 Program counter를 저장한다. 그 후 CPU의 제어를 통해 운영체제 또는 하드웨어의 특정 처리루틴이 실행된다. 인터럽트 처리가 끝나면 이전 작업 상태를 복구하고, 작업 수행을 재개한다.

1. 인터럽트의 종류

하드웨어 인터럽트(Interrupt)✔️

하드웨어가 발생시킨 인터럽트

소프트웨어 인터럽트(Trap)✔️

사용자 프로그램이 발생시킨 인터럽트

👉🏻 Exception: 프로그램이 오류를 범한 경우
👉🏻 System call: 프로그램이 커널 함수를 호출하는 경우

2. 관련 용어

인터럽트 벡터✔️

해당 인터럽트 처리 루틴 주소를 가지고 있음

인터럽트 처리 루틴(Interrupt Service Routine, 인터럽트 핸들러)✔️

👉🏻 해당 인터럽트를 처리하는 커널 함수
👉🏻 인터럽트에서 무슨 일을 해야 하는지 정의함


🌟 프로그램 카운터(Program counter)

프로그램 카운터는 CPU 내의 레지스터(Register)중 하나로, 다음 번에 실행할 기계어 메모리 주소를 갖고 있다. 이 특성 때문에 명령어 포인터라고도 한다.


🌟 시스템 콜(System call)

시스템 콜은 사용자 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출하는 것이다. 시스템 콜은 일반적으로 각 운영체제에 따라 고유한 번호나 식별자로 구분된다.

📖 교재 및 출처

  • 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
  • 반효경님, 운영체제와 정보기술의 원리
profile
배움 기록

2개의 댓글

comment-user-thumbnail
2023년 7월 23일

글 잘 봤습니다.

1개의 답글