컴퓨터 시스템과 운영체제

2023. 9. 16. 03:46전공/운영체제

컴퓨터 시스템의 4가지 요소

하드웨어(HW)

  • 기본적인 컴퓨팅 자원을 제공
  • 중앙처리장치(CPU), 메모리, 입출력(I/O) 장치 등

운영체제(Operating systems)

  • 다양한 사용자를 위해 다양한 응용과 컴퓨터 하드웨어 사이의 interaction을 제어 및 조정

프로그램(system programs/application programs)

  • 사용자의 문제를 해결하기 위해 컴퓨팅 자원을 사용
  • 워드 프로세서, 스프레드시트, 컴파일러, 웹 브라우저 등

사용자(users)

  • 사람, 기계, 혹은 다른 컴퓨터들

사용자 관점에서의 운영체제

사용자의 관심 이슈

  • 프로그램을 사용하기 편리할 것
  • 프로그램을 실행할 때 성능이 좋을 것

사용자가 신경 쓰지 않는 이슈

  • 전체 시스템의 자원 이용률

컴퓨터 종류에 따라 달라지는 이슈들

  • 메인프레임에 연결된 터미널
    • 운영체제는 자원 이용을 극대화하도록 설계
    • 각 사용자는 자신의 정당한 몫만 사용
  • 클러스터 내의 워크스테이션
    • 개인의 사용 편이성과 공유 자원 이용의 조화를 달성
  • 휴대용 컴퓨터/임베디드 컴퓨터
    • 편리한 UI 제공
    • 빠른 무선 네트워크 환경 구성

시스템 관점에서의 운영체제

자원 할당자(resource allocator)로서의 운영체제

  • 각 프로그램과 사용자에 대해 필요한 자원을 할당
  • 효율적이고 공정한 자원 분배 결정

제어 프로그램(control program)으로서의 운영체제

  • 다양한 입출력 장치와 응용 프로그램을 제어
  • 컴퓨터의 부적절한 사용 및 에러 방지를 위해 프로그램의 실행에 관여

운영체제의 정의

어떤 것을 운영체제라 하는가?

  • 운영체제와 비운영체제를 구분하는 기준은 명확하지 않음
  • 운영체제의 기능은 컴퓨터 시스템에 따라 크게 달라질 수 있음

운영체제에 대한 일반적인 정의

  • 컴퓨터에서 반드시 실행되는 하나의 프로그램
  • 커널(kernel) : 컴퓨터 시스템을 동작시키기 위해 필요한 운영체제의 핵심 컴포넌트 집합
    • 운영체제의 최소 단위
  • 시스템프로그램(system program) : 운영체제와 연계되지만 반드시 커널에 포함되지는 않음

컴퓨터 HW 시스템 구조

범용 컴퓨터(general-purpose) 시스템

  • 범용 컴퓨터 : 특정 기기나 응용에 종속되지 않고 다양한 목적을 지니는 다양한 프로그램들을 별다른 제약 없이 실행할 수 있는 컴퓨터
    • ↔ 특수목적 컴퓨터 : 특수한 목적을 수행하기 위해 사용하는 컴퓨터
      • ex) 임베디드 컴퓨터
  • 단일 혹은 다중 코어로 구성된 CPU로 운영
  • 각 코어들이 공유하는 메모리를 구축
  • 각 주변 장치를 제어하는 디바이스 컨트롤러 부착
    • 디바이스 컨트롤러가 각 디바이스의 요청을 받아 운영체제에 인터럽트(신호)를 보내서 작업을 처리
    • 특수목적 레지스터(special purpose resistor)
    • local buffer storage
  • HW 컴포넌트와 공유 메모리 사이에서 데이터를 전송하도록 하는 system bus 구성

저장장치 계층 구조

레지스터

  • CPU 코어 내에 위치하며, 가장 빠른 접근 속도 제공
  • 메인 메모리로부터 instruction 및 operands를 가져와서 레지스터에 적재한 후 연산 수행

메인 메모리

  • Dynamic random-access memory(DRAM)을 사용
    • 메모리의 모든 위치에 대해서 동일한 속도로 데이터를 읽고 쓸 수 있음
  • 디스크에 비해 용량이 작음
  • 휘발성(volatile)

보조기억장치

  • 프로그램과 데이터를 영구 저장(non-volatile)
  • 대용량
  • Hard disk drive(HDD), Solid state drive(SSD)등을 사용

캐싱(caching)

  • 속도가 더 빠른 저장장치에 데이터에 대한 복제본을 생성
  • 자주 접근하는 데이터에 대해 빠른 처리 속도 달성
  • 캐시 메모리
    • 레지스터의 크기는 메인메모리보다 훨씬 작음
    • 필요한 데이터를 저장하려면 메인메모리에 자주 접근하여 데이터를 읽고 덮어써야 함
    • 성능적으로 비효율적
    • 운영체제 관점에서 자주 접근한다고 판단되는 명령어 집합 또는 데이터를 레지스터와 메인 메모리 사이의 별도의 저장공간(캐시)을 두면 빠르게 가져올 수 있음
    • 크기, 접근 시간, 대역폭 모두 레지스터와 메인메모리의 중간 값
    • 캐시 메모리의 크기를 키우면
      • 물리적 면적 커짐 → CPU의 다른 장치 작아짐 ⇒ CPU 연산 능력 떨어짐
      • 캐시 메모리는 메인 메모리보다 비쌈
    • 캐시 메모리에 대한 교체 알고리즘
      • 어떤 데이터가 자주 접근하는 데이터인지 판단

아래층으로 내려갈수록 접근 속도는 느리고 가격은 저렴

컴퓨터 시스템 부팅

컴퓨터 시스템 부팅 프로시저(booting procedures)

  • 전원 ON
  • ROM 혹은 플래시 메모리 위에서 BIOS(Basic Input & Output System) 구동
  • BIOS는 CMOS 및 컴퓨터 HW에 대해 POST(power on self test) 수행
  • BIOS는 부팅 파티션의 MBR(master boot record)을 읽어옴
  • MBR의 부트로더( 혹은 부트스트랩)가 메모리에 적재됨
  • 부트로더는 운영체제의 커널 이미지를 메모리에 올림
  • 운영체제가 컴퓨터 시스템을 총괄

인터럽트

인터럽트(Interrupt)

  • 하드웨어 혹은 소프트웨어에서 발생한 사건(event)을 운영체제에게 전달
  • 트랩(Trap) : 소프트웨어에 의해 생성된 인터럽트

인터럽트 서비스 루틴(Interrupt service routine, ISR)

  • 인터럽트를 처리하기 위한 code
  • 인터럽트가 발생하면 레지스터의 instruction pointer를 ISR주소로 이동 및 인터럽트 처리
  • 처리 완료 후 이전 process의 실행 중단 지점으로 복귀

인터럽트 벡터(Interrupt vector)

  • (주요한) ISR의 주소를 저장한 배열(혹은 포인터 테이블)
  • ISR주소를 빠르게 색인

인터럽트 처리 과정(시간에 따른)

  • CPU는 유저 프로세스를 처리 중
  • I/O장치에서 I/O request 발생 → I/O인터럽트를 CPU에게 전송
  • CPU는 프로세스 정보를 저장 후 제어권을 OS에게 넘김
  • OS는 인터럽트 벡트 등을 이용하여 ISR 색인
  • 인터럽트 처리 후 중단 된 프로세스에게 다시 제어권이 넘어감
  • CPU는 중단된 프로세스에 대해 실행 재개

인터럽트 처리 과정(CPU-IO 장치 관계에 따른)

  1. 운영체제가 관리하는 device driver가 작업 시작
  2. I/O controller가 유저 또는 다양한 프로세스로부터 발생할 수 있는 I/O작업처리를 위한 준비 작업
  3. 해당 I/O장치에서 다양한 이벤트를 처리하기 위한 인터럽트 신호 생성
  4. CPU가 인터럽트 신호 수신 → CPU가 제어권을 프로세스에서 운영체제로 넘겨줌
  5. 운영체제는 인터럽트를 처리하기 위한 적절한 인터럽트 서비스 루틴을 찾아서 실행
  6. CPU의 제어권이 운영체제로부터 반환되어 중단된 프로세스의 실행을 재개

직접 메모리 접근(Direct memory access, DMA) 장치

  • CPU의 개입 없이 디바이스 컨트롤러와 메모리가 직접 데이터 블록을 전송할 수 있도록 하는 장치
  • 바이트 단위가 아닌 데이터 블록 전체에 대해 인터럽트 처리
    • 인터럽트 발생 수가 줄어든다.
    • CPU가 다른 프로세스 처리에 집중할 수 있음
    • 잦은 인터럽트로 발생하는 성능 저하를 막을 수 있음

멀티프로그래밍과 멀티태스킹

멀티프로그래밍(Multi- programming)

  • 한 명의 사용자 혹은 여러 사용자를 통해 단일 컴퓨터 시스템에서 여러 프로그램을 동시에 실행하는 것

멀티태스킹(Multi-tasking)

  • 여러 사용자들이 동시에 컴퓨터 시스템과 상호 작용하(고있다고 느끼)게 하는 것
  • 대화식 시스템(Interactive system)
  • 시분할 시스템(Time-sharing system)
    • 프로세스가 CPU를 점유할 수 있는 시간이 유한함
    • 한계 시간이 넘으면 다른 프로세스에게 CPU자원을 반환
    • 프로세스 스케쥴링

타이머

타이머(Timer)

  • 지정된 시간 후 컴퓨터를 인터럽트 하도록 설정할 수 있는 하드웨어
  • 특정 프로세스가 CPU를 독점하지 못하도록 방지

가변 타이머

  • 인터럽트를 발생시키는 시간 간격이 임의로 결정되는 타이머
  • 고정률의 클럭(fixed-rate clock) 및 계수기로 구현

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

프로세스  (0) 2023.09.16
리눅스  (0) 2023.09.16
운영체제의 개요 및 종류  (0) 2023.09.16
컴퓨터의 개요  (0) 2023.09.16
컴퓨터의 역사  (0) 2023.09.16