책읽기

[쉽게 배우는 운영체제](요약)[Part-1][Ch-2] 컴퓨터의 구조와 성능 향상

pythaac 2021. 7. 17. 21:02
이 글은 "쉽게 배우는 운영체제 (조성호 지음)"을 읽고 주관적으로 작성된 글입니다.

출처 : https://www.hanbit.co.kr/store/books/look.php?p_code=B5471691739

※ 요약

  1. 하드웨어의 구성
    • CPU / 메인메모리 / 입력장치 /출력장치 / 저장장치
    • 필수장치
      - CPU / 메인메모리
      - 컴퓨터로 하는 작업은 대부분 CPU와 메인메모리의 협업으로 이루어짐
    • 나머지는 주변장치
  2. 폰노이만 구조
    • CPU, 메모리, 입출력장치, 저장장치가 버스로 연결되어 있는 구조
    • 모든 프로그램이 메모리에 올라와야 실행 가능
  3. CPU
    • 명령어를 해석하여 실행하는 장치
    • 구성
      - 산술논리 연산장치
      - 제어장치
      - 레지스터
  4. 메모리
    • 실행에 필요한 프로그램과 데이터를 저장하는 공간
    • 모든 프로그램은 메모리에 올라와야 실행 가능
    • 종류
      - RAM : 읽기/쓰기 가능
      - ROM : 읽기만 가능
  5. 부팅
    • 컴퓨터를 켰을 때 운영체제를 메모리에 올리는 과정
    • 부팅 순서
      1. 컴퓨터 전원을 킴
      2. 바이오스가 실행되어 하드웨어를 점검
      3. 이상이 없으면 메모리에 부트스트랩 코드를 올려 실행
      4. 부트스트랩 코드는 하드디스크의 운영체제를 메모리에 가져와 실행

 

 

1. 컴퓨터의 기본 구성

1) 하드웨어의 구성

  • CPU / 메인메모리 / 입출력장치 / 저장장치로 구성
    • 필수 장치
      - CPU / 메인메모리
      - 대부분의 작업은 CPU와 메인메모리의 협업으로 이루어짐
    • 주변장치
      - 입출력장치 / 저장장치
  • 메인메모리는 전원이 꺼지면 데이터를 잃음
    • 따라서 영구적인 데이터 저장을 위해 보조저장장치(저장장치)를 사용
  • CPU와 메모리
    • CPU
      - 명령어를 해석하여 실행하는 장치
    • 메모리
      - 작업에 필요한 프로그램과 데이터를 저장하는 장치
      - 분할 공간마다 주소로 구분
  • 입출력장치
    • 입력장치
      - 데이터를 컴퓨터에 입력하는 장치
      - 키보드, 마우스, 스캐너, 터치스크린
    • 출력장치
      - 컴퓨터의 처리 결과를 보여주는 장치
      - 모니터, 스피커, 프린터
  • 저장장치
    • 메모리보다 느리지만 저렴하고 용량이크며 전원 on/off에 상관없이 데이터 저장
  • 메인보드
    • 버스
      - 컴퓨터 장치들을 연결하고 데이터를 전송하는 역할
    • 메인보드
      - 다양한 부품을 연결하는 커다란 판
      - 복잡한 버스들로 구성
      - 그래픽카드, 사운드카드, 랜카드 등이 기본으로 내장됨

2) 폰노이만 구조

  • 폰노이만 구조
    • CPU, 메모리, 입출력장치, 저장장치가 버스로 연결된 구조
    • 모든 프로그램이 메모리에 올라와야 실행할 수 있는 특징

3) 요리사 모형

  • 생략

4) 하드웨어 사양 관련 용어

  • 클록
    • CPU의 속도와 관련된 단위
    • CPU가 작업하는 일정한 박자
    • 클록이 일정 간격으로 tick을 만듦
    • tick에 맞춰 CPU 안의 모든 구성 부품이 작업하며, 메인보드의 클록이 틱을 보낼 때마다 데이터를 주고받음
  • 헤르츠
    • 1초에 클록틱이 발생하는 횟수
    • 3.4GHz는 1초에 3,400,000,000번 클록틱이 발생
      - 1초에 약 34억 번의 연산을 할 수 있다는 의미
  • 시스템 버스와 CPU 내부 버스
    • 시스템 버스
      - 메모리와 주변장치를 연결하는 버스
      - 전면 버스(FSB, Front-Side Bus)
    • CPU 내부 버스
      - CPU 내부에 있는 장치를 연결하는 버스
      - 후면 버스(BSB, Back Side Bus)
    • 두 버스의 속도 차이로 작업 지연 발생

 

2. CPU와 메모리

1) CPU의 구성과 동작

  • 산술논리 연산장치

2) 메모리의 종류와 부팅

 

3. 컴퓨터 성능 향상 기술

1) 버퍼

2) 캐시

3) 저장장치의 계층 구조

4) 인터럽트

  • 폴링(Polling)
    • 상태를 주기적으로 검사하는 방법
    • CPU가 직접 입출력장치에서 데이터를 가져오고 내보낼 때 폴링 사용
    • 초기 컴퓨터 시스템에서 사용
    • 그러나 CPU가 명령어 해석 / 실행 역할 외에 모든 입출력까지 관여하는 것은 작업 효율이 떨어짐
  • 인터럽트(Interrupt)
    • 상태가 변했을 때 알리는 방식
    • CPU 작업과 데이터 입출력을 분리하여, 입출력 관리자가 데이터 입출력을 담당
    • 즉, 데이터 입출력 시간에 CPU가 다른 작업 가능
    • 이 때 입출력 관리자가 CPU에게 완료 신호를 보낼 때 인터럽트 사용
    • IRQ (Interrupt ReQuest)
      - 주변장치 / 장치의 작업을 식별하기 위한 번호
    • 인터럽트 벡터 (Interrupt Vector)
      - 인터럽트의 빈번한 사용이 비효율적
      - 여러 개의 인터럽트를 하나의 배열로 만든 것
  • 직접 메모리 접근 (DMA, Direct Memory Access)
    • 메모리는 CPU만 접근 권한을가짐
    • 입출력 관리자가 CPU의 요총에 의해 데이터를 메모리에 가져다 놓을 때 권한 문제
    • 입출력 관리자의 CPU 허락 없이 메모리에 접근할 수 있는 권한이 DMA
  • 메모리 매핑 입출력 (MMIO, Memory Mapped I/O)
    • 메모리에 CPU가 사용하는 데이터 / 입출력 장치가 사용하는 데이터가 섞임
    • 두 공간을 분리
      - 운영체제 영역 / CPU 작업 영역 / 입출력 작업 영역
  • 사이클 훔치기 (Cycle Stealing)
    • CPU와 DMA가 메모리에 동시에 접근
    • 비교적 DMA의 속도가 느리므로 CPU가 양보하는 것

 

4. 병렬 처리

1) 병렬 처리의 개념

1) 병렬 처리 시 고려 사항

1) 병렬 처리 기법

 

5. [심화학습] 무어의 법칙과 암달의 법칙

1) 무어의 법칙

2) 암달의 법칙