상세 컨텐츠

본문 제목

운영체제 - 컴퓨터 구조

공부

by myeongjaechoi 2024. 3. 31. 19:05

본문

컴퓨터

  • CPU, 메모리, 입출력장치로 구성
  • 필수장치 : CPU, 메모리(주기억장치)
  • 주변장치 : 입출력장치(입력장치, 출력장치, 저장장치(보조기억장치))

CPU

  • 작업에 필요한 프로그럄과 데이터를 저장하는 장소
  • 명령어를 해석하여 실행하는 장치
  • 산술논리 연산장치, 제어장치, 레지스터로 구성
  • 바이트 단위로 분할되어 있으며 공간마다 주소로 구분

저장장치

  • 메모리보다 느리지만 저렴하고 용량이 큼
  • HDD, SSD, CD, USB 메모리

버스

  • CPU, 메모리, 입출력 장치, 저장장치 간 데이터 통로

메인보드

  • CPU, 메모리, 입출력장치, 저장장치를 버스로 연결하는 장치

폰 노이만 구조

  • CPU, 메모리, 입출력장치, 저장장치를 버스로 연결하는 컴퓨터 구조
  • 메모리를 이용하여 프로그램이 가능한 컴퓨터 구조

클록(clock)

  • 많이 발생할 수록 많은 연산 처리 가능
  • CPU는 작업할 때 일정한 박자가 있는데 이 박자를 만들어 냄

산술논리 연산장치

  • CPU에서 데이터를 연산하는 장치
  • 데이터의 덧셈, 뺄셈, 곱셈, 나눗셈 같은 산술 연산 수행
  • AND, OR 같은 논리 연산 수행

제어장치

  • CPU 명령어해석하여 제어신호를 보냄

레지스터

  • 데이터 연산을 위해 메인 메모리로부터 데이터를 읽어와 저장하는 곳

사용자 가시 레지스터

  • 데이터 레지스터(DR) - 메모리에서 가져온 데이터를 저장하는 레지스터
  • 주소 레지스터(AR) - 데이터의 메모리 주소를 저장하는 레지스터

사용자 불가시 레지스터

  • 프로그램 카운터(PC) - 다음에 실행한 명령어의 주소 또는 명령어의 코드 행 번호
  • 명령어 레지스터(IR) - 현재 실행 중인 명령어를 저장하는 레지스터
  • 메모리 주소 레지스터(MAR) - 메모리로부터 읽거나 메모리에 쓸 데이터의 메모리 주소를 저장하는 레지스터
  • 메모리 버퍼 레지스터(MBR) - 메모리로부터 읽거나 메모리에 쓸 데이터를 저장하는 레지스터
  • 프로그램 상태 레지스터(PSR) - 산술논리 연산장치의 연산결과의 상태(양수, 음수, 0)를 저장하는 레지스터

버스 - 시스템 버스

  • 제어 버스 - 제어 장치와 연결된 버스, CPU 명령어를 해석하여 제어신호를 주고 받기 위해 사용됨(양방향 통신)
  • 주소 버스 - 메모리 또는 주변장치에 데이터를 읽거나 쓸 때 데이터메모리 주소 또는 주변 장치 내의 위치 정보
  • 데이터 버스 - 메모리 버퍼 레지스터와 연결된 버스

메모리 - 부팅

  • 컴퓨터를 켰을 때 운영체제를 메모리에 올리는 과정
  • 부팅 과정
    • 컴퓨터의 전원을 켬
    • ROM에 있는 BIOS 프로그램이 실행 -> 하드웨어 정상 동작 확인
    • BIOS 프로그램 -> ROM에 있는 bootstrap 프로그램 실행 -> bootloader 프로그램을 메모리에 올림
    • bootloader 프로그램이 실행되면 운영체제가 메모리에 올라감

버퍼

  • 두 장치 간의 속도 차이를 완하기 위해 두 장치 간의 데이터 전송 시 데이터를 임시로 저장하는 장치
  • 예 : 유튜브 동영상을 볼 때 데이터를 다운로드하는 시간과 재생하는 시간의 속도 차이로 인해 동영상이 끊기는 문제를 해결하기 위해 동영상 데이터의 일정 부분을 버퍼에 넣은 뒤 실행

Spooling

  • CPU와 입출력 장치가 독립적으로 동작할 수 있도록 하는 기법
  • CPU와 입출력 장치 간의 속도 차이를 완화 시킴

캐시

  • CPU와 메모리 간의 속도 차이를 완화시키기 위해 메모리의 데이터를 임시로 저장하는 버퍼의 일종
  • 캐시 히트 : 캐시에 원하는 데이터를 찾았을 때
  • 캐시 미스 : 캐시에 원하는 데이터가 없을 때
  • 캐시 적중률 : 캐시 히트의 비율

인터럽트

  • 소프트웨어와 하드웨어에 의해 발생하는 이벤트
  • 운영체제는 인터럽트가 발생하면 실행 중인 프로세스를 중단하고 인터럽트를 먼저 처리

인터럽트가 발생되는 경우

  • 입출력 작업이 완료되었을 때 CPU에게 알리기 위해 발생
  • 숫자를 0으로 나눴을 때
  • 사용자가 컴퓨터의 전원 버튼을 눌렀을 때
  • 잘못된 메모리 주소를 참조하였을 때

인터럽트 처리

  • 인터럽트 발생
  • OS는 실행 중인 프로세스를 중단하고 CPU의 상태를 보존함
  • 인터럽트 처리
  • 중단된 프로세스로 복귀하여 계속 수행

I/O method

  • CPU와 주변장치 간의 데이터 I/O 방법
  • 인터럽트 기반의 Polling I/O, interrupt driven I/O, DMA 방법이 많이 사용됨

I/O controller

  • CPU와 주변장치 사이에 존재
  • I/O controller는 주변장치에 대한 데이터 I/O 처리

Polling I/O

  • 입출력장치에 대한 문자 단위 데이터 I/O 처리
  • CPU는 주기적으로 I/O controller의 데이터 I/O가 완료되었는지 확인

Interrupt driven I/O

  • 입출력장치에 대한 문자 단위 데이터 I/O 처리
  • CPU가 I/O controller에게 데이터 I/O 처리를 요청한 다음 다른 작업을 처리 -> CPU의 효율성 높임
  • I/O controller는 데이터 I/O가 완료되면 CPU에게 interrput를 보냄
  • 한 문자당 하나의 interrupt 발생

DMA

  • 저장장치에 대한 블록 단위 데이터 I/O 처리
  • CPU가 I/O controller에게 블록 단위 데이터 I/O 처리를 요청할 때 메모리 상의 데이터의 시작 주소와 데이터의 크기를 알려줌 ->CPU의 효율성 높임
  • I/O controller는 블록 단위 데이터 I/O를 처리하는 동안 CPU의 간섭없이 메모리에 직접 접근
  • I/O controller는 데이터 I/O가 완료되면 CPU에게 interrupt를 보냄
  • 한 블록당 하나의 interrupt 발생

 

관련글 더보기