티스토리 뷰

Ch1. 컴퓨터 시스템 개요

컴퓨터의 자원을 효율적으로 관리해서 사용자에게 서비스를 제공하는 소프트웨어

컴퓨터 하드웨어

프로세서

계산하는 역할

  • CPU
  • GPU
  • 응용 전용 처리장치 등

메모리(Memory)

무언가 저장하는 역할

  • 주 기억장치
  • 보조 기억장치

주변장치

  • 키보드/마우스
  • 모니터, 프린터
  • 네트워크 모뎀 등

프로세서 (Processor)

  • 컴퓨터의 두뇌 (중앙처리장치)
    • 연산 수행하고 컴퓨터의 모든 장치의 동작을 제어함

 

레지스터 (Register)

  • 프로세서 내부에 있는 메모리
    • 프로세서가 사용할 데이터를 저장
    • 컴퓨터에서 가장 빠른 메모리
  • 레지스터의 종류
    • 용도에 따른 분류
      • 전용 레지스터, 범용 레지스터
    • 사용자가 정보 변경 가능 여부에 따른 분류
      • 사용자 가시 레지스터, 사용자 불가시 레지스터
    • 저장하는 정보의 종류에 따른 분류
      • 데이터 레지스터, 주소 레지스터, 상태 레지스터

사용자 가시 레지스터

운영체제와 사용자 프로그램을 통해 접근이 가능한 데이터와 주소 등을 보관한다.

  • 데이터 레지스터 : 함수 연산에 필요한 데이터를 저장
  • 주소 레지스터 : 주소나 유효 주소를 계산하는 데 필요한 주소의 일부분을 저장

사용자 불가시 레지스터

프로세스에 제어와 상태를 관리한다.

  • 프로그램 카운터 (PC, Program Counter) : 다음에 실행할 명령어의 주소를 보관하는 레지스터
  • 명령어 레지스터 (IR, Instruction Register) : 현재 실행하는 명령어를 보관하는 레지스터
  • 누산기(ACC, Accumlator) : 데이터를 일시적으로 저장하는 레지스터

 

운영체제가 프로세서에게 시키는 일

  • 프로세서에게 처리할 작업 할당 및 관리
    • 프로세스 생성 및 관리
  • 프로그램의 프로세서 사용 제어
    • 프로그램의 프로세서 사용 시간 관리
    • 복수 프로그램간 사용 시간 조율 등

메모리 (Memory)

  • 데이터를 저장하는 장치 (기억장치)
    • 프로그램, 사용자 데이터 등
  • 메모리의 종류 (그림 참조)
    • 올라갈 수록 속도는 빨라지고 용량은 적어진다.

 

주기억 장치(Main memory)

  • 프로세서가 수행할 프로그램과 데이터 저장
  • DRAM을 주로 사용 : 용량이 크고 가격이 저렴하다.
  • 디스크 입출력 병목현상(I/O bottleneck) 해소

왜 굳이 Disk에서 Processor로 가져다 쓰는 것이 아니라 Main meory를 거쳐서 갈까?

  • 디스크에 비해 CPU의 발전 속도가 빨라져 속도 Gap이 생겼다.
  • 프로세서가 프로그램을 수행하는 동안 Disk에서 뽑아서 다음에 수행할 프로그램을 담아둘 공간이 필요하다.
  • CPU보단 느리더라도 용량이 많고 디스크보다 용량이 적더라도 빠른 장치 => 메인 메모리

 

캐시 (Cache)

  • 프로세서 내부에 있는 메모리 (L1, L2 캐시 등)
    • 속도가 빠르고, 가격이 비쌈
  • 메인 메모리의 입출력 병목현상 해소
    • 메인 메모리를 넣었음에도 Gap을 메꿔도 차이가 남.
    • 비슷한 방법으로 캐시를 도입

 

캐시의 동작

  • 일반적으로 HW적으로 관리 됨
  • 캐시 히트 (Cache hit) : 필요한 데이터 블록이 캐시 존재
  • 캐시 미스 (Cache miss) : 필요한 데이터 블록이 없는 경우
    • 오히려 손해

보통 캐시 128KB 정도 밖에 안 되는데 효과를 볼 수 있을까?

Ans) 지역성!!!

지역성(Locality)

  • 공간적 지역성 (Spatial locality)
    • 참조한 주소와 인접한 주소를 참조하는 특성
      • 예) 순차적 프로그램 수행
    • 어떤 주소를 한 번 참조하면 다음 번에 이 근처 주소를 참조할 가능성이 높다.
  • 시간적 지역성 (Temporal locality)
    • 한 번 참조한 주소를 곧 다시 참조하는 특성
      • 예) For 문 등의 순환문
    • 특정 메모리를 참조했다면 얼마 지나지 않아 또 참조할 가능성이 높다.
  • 지역성은 캐시 적중률(cache hit ratio)과 밀접
    • 알고리즘 성능 향상 위한 중요한 요소 중 하나

 

A와 B의 코드 중 어떤 코드를 선택할 것인가?

캐시는 메인 메모리에서 특정 데이터를 사용하면 해당 데이터만 가져오는 것이 아니라 특정 영역을 가져와서 캐시를 채워넣는다. 이 때 영역의 크기를 Cache line(block) 이라고 부른다.

A의 코드를 사용해야 하나의 영역을 가져올 경우에 캐시에서 바로 대응할 수 있다.

보조기억 장치(Auxiliary memory / storage)

  • 프로그램과 데이터를 저장
  • 프로세서가 직접 접근할 수 없음(주변장치)
    • 주기억장치를 거쳐서 접근
    • (프로그램/데이터 > 주기억장치) 인 경우는? 20GB 게임을 8GB 메모리로 어떻게 돌릴 수 있을까?
      • 가상 메모리(Virtual memory)
  • 용량이 크고 가격이 저렴

운영체제가 메모리에게 시키는 일

메모리 할당 및 관리

  • 프로그램의 요청에 따른 메모리 할당 및 회수
  • 할당된 메모리

가상 메모리 관리

  • 가상메모리 생성 및 관리
  • 논리 주소 => 물리주소 변환

시스템 버스(System Bus)

  • 하드웨어들이 데이터 및 신호를 주고 받는 물리적인 통로

 

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

 

주변 장치

  1. 입력장치 : 마우스, 키보드
  2. 출력장치 : 모니터, 프린터, 스피커
  3. 저장장치 : CD, USB

운영체제가 주변장치에게 하는 일

장치드라이버 관리

  • 주변 장치 사용을 위한 인터페이스 제공

인터럽트 처리

  • 키보드의 입력이 들어왔을 때 시스템에게 알려주는 것
  • 주변 장치의 요청 처리

파일 및 디스크 관리

  • 파일 생성 및 삭제
  • 디스크 공간 관리

출처

반응형

'Programming > 운영체제' 카테고리의 다른 글

Ch2. 운영체제 개요  (0) 2021.06.16
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함