[CS][OS] 하드웨어와 운영체제의 구조 및 기능

  • 컴퓨터 시스템 자원(하드웨어) ↔ 운영체제(OS) ↔ 응용프로그램(application) ↔ 사용자
  • 운영체제: 하드웨어를 관리

    • 예: 프로세서의 작업 관리, 프로그램의 프로세서 관리, 메모리 관리, 장치 드라이버(주변 장치 사용 위한 인터페이스) 관리

하드웨어

  • 프로세서: 컴퓨터의 모든 장치의 동작을 제어

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

    • 레지스터: CPU 안에 있다 / 프로세서가 사용할 데이터 저장
    • 캐시: CPU 안에 있다 / 프로세서 ↔ 캐시 ↔ 메인메모리
    • 주기억장치(메인 메모리): 프로세서가 수행할 프로그램과 데이터 저장 / 주로 DRAM 사용 / 프로세서 ↔ 메인메모리 ↔ 보조기억장치
    • 보조기억장치(디스크)

      • 하드디스크
      • HDD
      • SDD
      • CD, 자기테이프 등
  • 주변장치

    • 입력장치
    • 출력장치
    • 저장장치

메모리

  • 종류: 레지스터, 캐시, 주기억장치, 보조기억장치
    ← 빠르게 접근 가능하고, 용량 적고, 비쌈
  • 프로세서의 접근 가능 여부

    • 직접 접근 가능: 레지스터, 캐시, 주기억장치
    • 직접 접근 불가: 보조기억장치

      • 프로세서 ↔ 메인메모리 ↔ 보조기억장치의 경로로 사용
      • 용량이 보조 기억장치 > 메인메모리이면 ‘가상메모리’ 이용으로 해결

레지스터

  • 메인 메모리에서 레지스터로 데이터 옮겨와서 데이터 처리 후, 그 내용을 다시 메인메모리에 저장
  • 분류 기준

    • 사용자의 접근 여부

      • 사용자가 직접 접근 불가

        • 프로그램 카운터 PC: 다음에 실행할 명령어 주소 보관
        • 명령어 레지스터 IR(Instruction Register): 지금 실행하는 명령어 주소 보관
        • 누산기 ACC: 데이터 일시 저장
        • 메모리 주소 레지스터 MAR: 프로세서가 읽거나 쓰려는 메모리 주소 일시 저장
        • 메모리 버퍼 레지스터 MBR: 프로세서가 읽거나 쓰려는 데이터 또는 그 명령을 저장
        • 명령은 IR로, 내용은 ACC로 전달
      • 사용자가 접근 가능

        • 데이터 레지스터
        • 주소 레지스터

캐시

  • 프로세서는 캐시에게 메인메모리의 특정 데이터 있는지 물어본다

    • 있으면 Cache hit
    • 없으면 캐시가 메인메모리 가서 가져온 후, 프로세서에게 전달 Cache miss
  • 지역성(Locaility): 캐시 적중률(Cache hit ration)와 밀접한 관련 → 알고리즘 성능 개선에 큰 영향

    • 공간적 지역성: 한번 참조했던 주소의 부근 주소를 참조
    • 시간적 지역성: 한번 참조했던 주소 다시 참조

시스템 버스

  • 프로세서, 메모리, 주변 장치 사이에 데이터를 주고 받는 통로
  • 전달하는 것에 따라 구분(데이터버스, 주소버스, 제어버스)

운영체제

기능

  • 리소스를 관리

    • 하드웨어 리소스: 프로세서, 메모리, 주변장치 등
    • 소프트웨어 리소스: 파일, 어플리케이션, 메세지, 시그널 등
  • 사용 환경 제공(CUI(CLI), GUI 등)
  • 프로세스 관리

    • 프로세스: 커널에 등록된 실행 단위(실행 중인 프로그램)
    • OS는 프로세스의 생성, 삭제, 상태 관리, 교착 상태 해결 등 수행 (PCB: 프로세스 정보 관리)
  • 프로세서 관리

    • CPU: 프로그램을 실행하는 핵심 자원
    • 프로세스들의 처리 순서 결정해서 각 프로세스에 대한 프로센서를 할당
  • 메모리 관리 (여기서의 메모리 = 주기억장치(프로세서가 수행할 프로그램과 데이터 저장))

    • 프로세스에 대한 메모리 할당, 회수, 접근 영역 관리
  • 파일 관리
  • I/O 과정 관리

    • 실행 중인 프로세스에서 입출력이 필요할 때는 반드시 OS를 거쳐서 진행


  • 그 외의 관리 영역: 네트워크, 보안 등등

구조

  • 커널: 운영체제의 핵심

    • 하드웨어와 직접 상호 작용/ 메모리에 항상 올라가 있음/ 사용자의 직접 접근은 안됨
      cf. 쉘: 커널에 대한 인터페이스 → 사용자의 명령을 커널에 전달
  • 시스템 라이브러리 = 시스템 콜 = 시스템콜 인터페이스

    • 응용프로그램과 OS 사이의 인터페이스
  • 시스템 유틸리티: 사용자가 요구하는 개별적 기능 제공(필요한 순간에 메모리에 올려서 사용)




출처


Written by
Sunmin
어제보다 나은 오늘을 만들기 위해 배우고, 기록하고, 회고합니다. Maker. Reader. Realistic optimist.