윤개발

1. 하드웨어 구성 본문

컴퓨터과학/운영체제

1. 하드웨어 구성

DEV_SJ 2021. 5. 16. 23:59

하드웨어는 크게 프로세서와 메모리로 분류되며 버스로 연결된다.

1. 프로세서

레지스터, 연산장치, 제어장치로 구분되며 버스로 연결된다.

레지스터

프로세서 내부의 임시 저장장치

용도에 따른 분류

  • 전용 레지스터: 프로세서가 명령어를 수행하는데 필요한 특정 데이터를 저장하거나 읽는데 사용하는 레지스터 → PC, PSR(Program Status R), IR, MAR, MDR(M Data R)
  • 범용 레지스터: 메모리로부터 인출한 일반데이터, 주소 혹은 ALU에서 계산된 값을 임시로 저장할 때 사용하는 레지스터들

사용자가 정보를 변경할수 있는지에 따른 분류

  • 사용자가 운영체제와 같이 프로그램을 이용하여 정보를 변경할 수 있는 데이터레지스터, 주소레지스터 등을 의미한다.
  • 사용자가 조작 불가능한 프로세서 상태나 제어레지스터 같은 것을 의미한다.

저장 종류에 따른 분류

  • 데이터를 저장하는 레지스터
  • 주소를 저장하는 레지스터
  • 상태를 저장하는 플래그비트가 모인 레지스터

2. 메모리

속도가 느린 보조기억장치부터 빠른 레지스터까지 다양하다.

메모리 계층구조가 필요한 이유

  • 비용적인 측면 - 상층에 있을수록 비싸다.
  • 자주 쓰이는 데이터는 계속 쓰인다. 자주 안읽는 데이터까지 비싼 메모리에 읽어올 필요는 없는 것임

메인메모리, 주기억장치, RAM

  • CPU에서 직접 접근이 가능한 메모리

캐시 메모리

처리 속도가 빠른 프로세서와 상대적으로 느린 메인메모리의 속도차이를 높인다.

  • 한번 참조한 주소를 다시 참조하려는 특성과 인접한 주소를 참조하려는 특성을 이용한다.
  • 캐시 내부에서도 L1, L2, L3로 나누어 캐시 히트 미스를 반복한다.
  • 레벨이 올라갈수록 용량이 늘어난다.

3. 시스템 버스

데이터를 주고받을 수 있게하는 통로

  • 데이터 버스: 프로세서와 메인 메모리, 주변장치 사이에서 데이터를 전송
  • 주소버스: 주소 정보를 전송
  • 제어버싀 구성요소를 제어하는데 사용

인터럽트

CPU가 명령을 수행중에 I/O등이나 예외상황이 발생하여 CPU가 처리할 일이 생기면 알려주는 것을 말한다.

과거에는 폴링 방식을 사용했다. CPU가 명령어 해석과 실행이 아닌 입출력까지 관여하는 것이다.

이런 방식에 인터럽트를 도입하여 CPU가 입출력이 끝나는 동안 다른 일을 처리할 수 있게 된다.

인터럽트 방식

  • CPU는 입출력 관리자에게 명령을 주고 다른일 을 처리한다.
  • 입출력관리자는 작업이 완료되면 인터럽트 테이블에 표시하여 CPU에게 알려주고 CPU는 자신의 작업을 모두 끝낸 후 테이블을 보고 해당 작업을 수행한다.
  • 소프트웨어에서 발생한다면 (system Call) CPU는 작업중이던 상태의 프로세스를 PCB에 저장하고 PC에 다음 수행할 명령어를 저장한다.
  • 인터럽트 벡터를 읽고 처리하여 레지스터를 복원해 다시 명령어를 수행한다.
  • 인터럽트 벡터가 1이면 정의된 인터럽트 핸들러를 이용하여 처리된다.

인터럽트 자세한 과정은 다른장에서 다룰것!

직접 메모리 접근(DMA, Direct Memory Access)

주변장치(하드디스크, 그래픽카드)들이 메모리에 직접 접근하거나 쓸 수 있도록 하는 기능

  • CPU의 개입 없이 접근하여 CPU의 성능을 높인다.
  • 빈번한 인터럽트 발생횟수를 최소화한다.
  • CPU와 DMA가 동시에 메모리에 접근한다면 DMA에게 우선권을 준다. 왜냐하면 속도가 빠른 CPU가 먼저 접근하게되면 DMA는 아사현상에 빠질 수 있기 때문이다.

'컴퓨터과학 > 운영체제' 카테고리의 다른 글

6. 물리메모리  (0) 2021.05.17
5. 교착상태  (0) 2021.05.17
4. 프로세스 동기화  (0) 2021.05.17
3. cpu 스케쥴링  (0) 2021.05.17
2. 프로세스와 스레드  (0) 2021.05.16
Comments