운영체제 정리 (1)

2021년 08월 07일
제작기간 2021년 8월 7일 ~ 2021년 8월 7일
태그 CS

1-1. 하드웨어의 구성

컴퓨터 하드웨어

  1. 프로세서, 메모리, 주변장치로 구성
  2. 서로 시스템 버스로 연결

프로세서

  1. 모든 장치의 동작을 제어, 명령 실행
  2. 연산장치, 제어장치, 레지스터로 구성
  3. 내부 버스로 연결
래지스터 이름 설명
Data Register 함수 연산에 필요한 데이터 저장
Address Register 주소나 주소 일부분 저장
Program Counter 다음에 실행할 명령어의 주소 보관
Instruction Register 현재 실행하는 명령어 보관
ACCumulator 데이터 일시적으로 저장
Memory Address Register 프로세서가 참조하려는 데이터의 주소 명시 -> 메모리에 접근하는 버퍼 레지스터
Memory Buffer Register 프로세서가 메모리에서 읽거나 메모리에 저장할 데이터 자체를 보관

메모리

메모리 계층 구조는 레지스터, 캐시, 메인 메모리, 보조기억장치임.

  1. 레지스터
    • 프로세서가 사용할 데이터를 보관하는 가장 빠른 메모리
  2. 메인 메모리
    • 프로세서 외부에 있음. 프로세서가 즉각적으로 수행할 프로그램과 데이터 저장, 프로세서에서 처리한 결과 저장
    • 보조기억장치는 실행 전 메인 메모리로 옮겨야 함
    • 물리적 주소(컴퓨터에 주어진 주소), 논리적 주소(가상 주소)
    • 논리적 주소를 물리적 주소로 변환하는 과정을 Mapping이라고 함
    • 메모리의 속도는 메모리 접근 시간, 메모리 사이클 시간으로 표현
  3. 캐시
    • 속도가 빠른 프로세서와 메인 메모리의 속도 차이를 보완하는 고속 버퍼
    • 메인 메모리에서 데이터를 블록(워드의 묶음) 단위로 가져와, 워드 단위로 전달
    • 프로세서가 참조하려는 데이터가 있으면 cache hit, 없으면 cache miss
    • spatial locality: 대부분의 프로그램이 참조한 주소와 인접한 주소의 내용을 다시 참조하는 특성
    • temporal locality: 한 번 참조한 주소를 곧 다시 참조하는 특성
  4. 보조기억장치
    • 프로그램과 데이터를 저장

System Bus

하드웨어를 물리적으로 연결하여, 데이터를 주고받을 수 있게 하는 통로.

  • 데이터 IO, 프로세서 상태, 인터럽트 요구와 허가, clock 신호 등을 전달
  • 데이터 버스, 주소 버스, 제어 버스로 구분
종류 설명
데이터 버스 데이터 전송. 배선 수가 프로세서가 한 번에 전송할 수 있는 비트 수(워드)를 결정.
주소 버스 시스템 구성 요소 식별하는 주소 정보.
제어 버스 시스템 구성 요소 제어하는 용도.

1-2. 시스템의 동작

입력 → 메모리에 저장 → 프로그램 제어에 따라 정보 인출 → 연산장치에서 처리 → 출력 / 보조기억장치에 저장

메인 메모리에 저장된 명령어는 프로세서에서 순차적으로 전송하여 처리.

명령어의 구조

명령어 = OPcode (연산부호) + 처리할 데이터 + Operand (피연산자: 데이터를 저장한 레지스터 or 메모리 주소)

direct address: 데이터가 있는 레지스터 or 메모리 주소 indirect address: 주소 정보 지정. 데이터를 읽을 때 메모리 2번 참조.

명령어의 실행

명령어 인출 → 명령어 해석, 프로그램 카운터 변경 → 피연산자 인출 → 명령어 실행 → 결과 저장

프로그램 카운터 변경: 다음 명령어를 지정하기 위함

Instruction cycle 추가 설명

  1. fetch cycle
    • PC → MAR → MBR + change PC → IR
  2. execution cycle
    • decode and execute
  3. indirect cycle
    • IR → MAR → → MBR → IR
  4. interrupt cycle

인터럽트

  • 입출력 장치나 프로그램에서 프로세서로 보내는 하드웨어 신호.
  • 예로, 입력장치에서 polling방식을 사용하면 각 장치의 상태 비트를 계속 검사. interrupt를 사용하면 효율적임.
  • 요청 후, interrupt service routine(처리) 진행