Operating System

COZYHAMA·2024년 4월 9일
0

Operating System

목록 보기
2/5
post-thumbnail

Introduction

운영체제란?

  • 유저와 하드웨어 간의 연결(중재자 역할)

운영체제 목표

사용자 입장

  • 사용자 프로그램을 실행하고 사용자 문제를 더 쉽게 해결
  • 컴퓨터 시스템을 사용하기 편리하게 만듬

컴퓨터 입장

  • 컴퓨터 하드웨어를 효율적으로 사용

컴퓨터 시스템 구조

하드웨어

  • 기본적인 컴퓨텅 리소스를 제공
  • CPU, memory, I/O devices

운영체제

  • 다양한 애플리케이션과 사용자 간의 다양한 하드웨어 사용을 제어하고 조정

응용 프로그램

  • 사용자의 컴퓨팅 문제를 해결하기 위해 시스템 리소스를 사용하는 방식을 정의
  • Word processors, compilers, web browsers, database systems, video games

사용자

  • People, machines, other computers

    △ Four Componets of a Computer System

운영체제의 일

  • 관점에 따라 다름
  • 사용자는 편리성, 사용 용이성 및 좋은 성능을 원함
    • 자원 활용에 대해서는 관심이 없음
  • 메인프레임이나 미니컴퓨터와 같은 공유 컴퓨터는 모든 사용자를 만족시켜야 함
  • 워크스테이션 등 전용 시스템 사용자는 전용 리소스를 보유하지만 서버의 공유 리소스클 자주 사용
  • 휴대용 컴퓨터는 리소스가 부족하고 유용성 및 배터리 수명에 최적화
  • 일부 컴퓨터에는 장치 및 자동차에 내장된 컴퓨터와 같이 사용자 인터페이스가 거의 또는 전혀 없음

운영체제의 정의

  • 운영체제는 자원 할당자
    • 모든 자원을 관리
    • 효율적이고 공정한 자원 사용을 위해 상충되는 요청 사이에서 결정
    • 예를 들면, Mem 16GB를 효율적으로 관리
  • 운영체제는 제어 프로그램
    • 정상적 실행이 가능하도록 관리
    • 컴퓨터의 오류 및 부적절한 사용을 방지하기 위해 프로그램 실행을 제어
  • 보편적으로 받아들여지는 정의가 없음
  • "운영 체제를 주문할 때 공급업체가 배송하는 모든 것"은 적절한 근사치
    • 매우 다양
  • "컴퓨터에서 항상 실행되는 유일한 프로그램"은 커널
    • 계속 돌고 있는 프로그램(메모리 할당)
  • 그 밖의 모든 것
    • 시스템 프로그램(운영체제와 함께 제공)
    • 응용 프로그램

컴퓨터 시작

  • 부트스트랩 프로그램은 전원을 켜거나 재부팅할 때 로드
    • 일반적으로 펌웨어로 알려진 ROM 또는 EPROM에 저장
    • 시스템의 모든 측면을 초기화
    • 운영체제 커널을 로드하고 실행을 시작

컴퓨터 시스템 구성

  • 컴퓨터-시스템 작동
    • 하나 이상의 CPUs, device controllers는 공유 메모리에 대한 액세스를 제공하는 공통 버스를 통해 연결
    • 메모리 사이클을 두고 경쟁하는 CPUs와 devices의 동시 실행

      △ Computer System Organization

컴퓨터 시스템 운영

  • I/O devices와 CPU가 동시에 실행 가능(병목현상 해결)
  • 각 device controller는 특정 장치 유형을 담당
  • 각 device controller에는 로컬 버퍼가 있음
  • CPU는 메인 메모리와 로컬 버퍼 사이에서 데이터를 이동
  • I/O는 device에서 controller의 로컬 버퍼로 이동
  • device controller가 CPU에 인터럽트를 발생시켜 동작을 완료했음을 알림

인터럽트의 일반적인 기능

  • 인터럽트는 일반적으로 인터럽트 벡터를 통해 모든 서비스 루틴의 주소를 포함하는 인터럽트 서비스 루틴에 제어권을 전달
  • 인터럽트 아키텍처는 인터럽트된 명령의 주소를 저장해야 함
  • 트랩 또는 예외는 오류 또는 사용자 요청으로 인해 발생하는 소프트웨어에서 생성된 인터럽트
  • 운영체제는 인터럽트 기반

인터럽트 처리

  • 운영체제는 저장 레지스터와 프로그램 카운터를 통해 CPU의 상태를 보존
    • 돌때마다 interrupt pin이 1인지 계속 확인
    • 1이면 interrupt handler로 이동
  • 발생한 인터럽트 유형을 결정

polling

  • 예를 들면, 몇시인지 계속 체크 혹은, 커피가 나오는거 서성이며 계속 체크

vectored interrupt system

  • 예를 들면, 알람 맞춰두고 체크 안함 혹은, 진동벨로 커피 나오는 걸 알림
  • 별도의 코드 세그먼트가 각 인터럽트 유형에 대해 어떤 조치를 취해야 하는지 결정

    △ Interrupt Timeline

I/O 구조

  • I/O 시작 후 I/O 완료 시에만 제어가 사용자 프로그램으로 반환
    • 대기 명령은 다음 인터럽트가 발생할 때까지 CPU를 유휴 상태로 유지
    • Wait loop(메모리 접근을 위한 경쟁)
    • 한 번에 최대 하나의 I/O 요청만 처리되며 동시 I/O 처리는 불가능
  • I/O가 시작된 후 I/O 완료를 기다리지 않고 제어가 사용자 프로그램으로 반환
    • 시스템 호출 – 사용자가 I/O 완료를 기다릴 수 있도록 운영체제에 요청
    • Device-status table(2차원 배열)에는 유형, 주소 및 상태를 나타내는 각 I/O 장치에 대한 항목이 포함
    • 운영체제는 device 상태를 결정하고 인터럽트를 포함하도록 테이블 항목을 수정하기 위해 I/O 장치 테이블에 대한 색인을 생성

storage 구조

Main memory

  • 주 저장소
  • CPU가 직접 접근할 수 있는 유일한 큰 저장 매체
  • 랜덤 액세스
  • 일반적으로 휘발성(전원 꺼져있을 시 데이터가 날라감)

Secondary storage

  • 보조 저장소
  • 대규모 비휘발성 저장 용량을 제공하는 메인 메모리의 확장

Hard disks

  • 자기 기록 재료로 덮인 단단한 금속 또는 유리 플래터
  • 디스크 표면은 논리적으로 트랙으로 나누어지고, 트랙은 섹터로 세분화
  • Disk controller는 장치와 컴퓨터 사이의 논리적 상호작용을 결정
  • Solid-state disks
    • Hard disk보다 빠르고 비휘발성
    • 다양한 기술
    • 인기 증대
profile
코딩의 지식으로 하루를 마무리

0개의 댓글

관련 채용 정보