본문 바로가기
CS/운영체제

운영체제의 개념과 구조

by snow_white 2023. 2. 5.

운영체제

  • 사용자와 하드웨어 사이의 중간 매개체로 응용 프로그램의 실행을 제어(가상기계)
  • 자원을 할당 및 관리하며, 입출력 제어 및 데이터 관리와 같은 서비스를 제공하는 소프트웨어(자원관리자)

역할

  • 하드웨어 및 사용자, 응용 프로그램, 시스템 프로그램 사이에서 인터페이스를 제공 (가상기계)
  • 프로세서, 메모리, 입출력장치, 통신장치 등 컴퓨터 자원을 효과적으로 활용하려고 조정·관리 (자원관리자)
  • 메일 전송, 파일 시스템 검사, 서버 작업 등 높은 수준의 서비스를 처리하는 응용 프로그램을 제공(가상기계) 
  • 다양한 사용자에게서 컴퓨터 시스템을 보호하려고 입출력을 제어하며 데이터를 관리 (자원관리자)

 

컴퓨터 시스템

하드웨어는 프로세서, 메모리(기억장치), 주변장치로 구성되고, 시스템 버스로 연결되어 있음

CPU

  • 중앙처리장치
  • 운영체제와 가장 밀접한 부분으로, 컴퓨터의 모든 장치의 동작을 제어하고 연산 수행
  • 제어장치(Control Unit), 연산장치(ALU, Artihmetic), 레지스터, 버스로 구성
    • 제어장치(Control Unit)는 컴퓨터에 있는 모든 장치들의 동작을 지시하고 제어하는 장치
      • 제어장치의 구성요소
        • 명령 레지스터 : 현재 실행중인 명령어의 내용을 기억하고 있습니다.
        • 명령 해독기(Decoder) : 명령 레지스터에 있는 명령어를 해독하는 회로입니다.
        • 제어신호 발생기, 부호기(Encoder) : 해독된 명령에 따라 각 장치로 보낼 제어 신호를 생성하는 회로입니다.
        • 제어 주소 레지스터(CAR) : 다음에 실행할 마이크로명령어의 주소를 저장하는 레지스터로, Mapping의 결과값, 주소 필드, 서브루틴 레지스터의 내용들이 적재되어 있습니다.
        • 제어 버퍼 레지스터(CBR) : 제어 기억장치로부터 읽혀진 마이크로명령어 비트들을 일시적으로 저장하는 레지스터입니다.
        • 제어 기억장치 : 마이크로 명령어들로 이루어진 마이크로명령어 비트들을 일시적으로 저장하는 레지스터입니다.
        • 순서 제어 모듈 : 마이크로명령어의 실행 순서를 결정하는 회로들의 집합입니다.
        • 순차카운터(Sequence counter) : 디코더에 의해 선택된 번호에 해당하는 타이밍신호를 생성합니다.
    • 연산장치(ALU, Artihmetic)는 제어장치의 명령에 따라 실제로 연산을 수행하는 장치
      • 연산장치가 수행하는 연산에는 산술연산, 논리연산, 관계연산, 이동등이 있으며 연산장치는 가산기, 누산기, 보수기, 데이터 레지스터, 오버플로 검출기, 시프트레지스터등으로 구성
    • 레지스터(Register)는 CPU 내부에서 처리할 명령어나 연산의 중간 결과값 등을 일시적으로 기억하는 임시 기억장소
    • 버스는 CPU, 메모리, I/O 장치 등과 상호 필요한 정보를 교환하기 위해 연결된 공동의 전송선
      • 번지 버스(Address Bus) : CPU가 메모리나 입 출력기기의 번지를 지정할 때 사용하는 단방향 전송선
      • 자료 버스(Data Bus) : CPU와 메모리 또는 입 출력 기기 사이에서 데이터를 전송하는 양방향 전송선
      • 제어 버스(Control Bus) : CPU의 현재 상태나 상태 변경을 메모리 또는 입출력장치에 알리는 제어신호를 전송하는데 사용하는 양방향 전송선

레지스터

  • CPU 내부에 존재하는 고속의 저장장소. CPU에서의 빠른 자료활용을 위해 사용

메모리

  • RAM(Random Access Memory)
    • 임의 액세스 메모리
    • CPU가 RAM 메모리의 모든 주소 위치에 직접 액세스
    • 휘발성 메모리
  • ROM(Read-only memory)
    • 읽기 전용 메모리
    • 비 휘발성 메모리

버스

  • 하드웨어를 물리적으로 연결하여 서로 데이터를 주고받을 수 있게 하는 통로
  • 컴퓨터 내부의 다양한 신호(데이터 입출력 신호, 프로세서 상태 신호, 인터럽트 요구와 허가 신호,클록clock 신호 등)를 시스템 버스로 전달
  • 기능에 따라 데이터 버스, 주소 버스, 제어 버스로 구분
데이터 버스 프로세서와 메인 메모리, 주변장치 사이에서 데이터를 구성하는 배선 수는 프로세서가 한 번에 전송할 수 있는 비트 수를 결정하는데, 이를 워드라고 한다.
주소 버스 프로세서가 시스템의 구성 요소를 제어하는 데 사용한다. 제어 신호로 연산장치의 연산 종류와 메인 메모리의 읽기나 쓰기 동작을 결정한다.
제어 버스 프로세서가 시스템의 구성 요소를 제어하는 데 사용한다. 제어 신호로 연산장치의 연산 종류과 메인 메모리의 읽기나 쓰기 동작을 결정한다.

부트스트래핑(booting / bootstrapping)

  • 운영체제를 메인 메모리에 적재하는 과정
  • 부트로더는 부트스트랩 로더bootstrap loader 줄인 말로 하드디스크와 같은 보조기억장치에 저장된 운영체제를 메인 메모리에 적재하는 ROM에 고정시킨 소규모 프로그램

인터럽트 (Interrupts)

  • CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치에 예외상황이 발생하여 처리가 필요할 경우에 CPU에게 알려 처리할 수 있도록 하는 것
  • 선점형 스케쥴러 구현
    • 프로세스 running 중에 스케쥴러가 이를 중단시키고, 다른 프로세스로 교체하기 위해, 현재 프로세스 실행을 중단시킴
      • 그러려면, 스케쥴러 코드가 실행이 되서, 현 프로세스 실행을 중지시켜야 함
  • IO Device와의 커뮤니케이션
    • 저장매체에서 데이터 처리 완료시, 프로세스를 깨워야 함 (block state -> ready state)
  • 예외 상황 핸들링
    • CPU가 프로그램을 실행하고 있을 때, 입출력 하드웨어 등의 장치나 또는 예외상황이 발생할 경우, CPU가 해당 처리를 할 수 있도록 CPU에 알려줘야 함

Operating System Operations

  • Multiprogramming : 동시에 여러 프로그램이 병렬로 수행되는 것
  • Multitasking(= multiprocessing)
    • 논리적으로 멀티프로그래밍을 확장한 것
    • 시분할. 시간 아까우니까 시간을 나눠서 CPU 사용 (concurrency)
    • CPU Scheduling
      • CPU 효율을 제일 높게 만드는 선택 방법
  • 운영체제의 두가지 오퍼레이션 모드 : 유저모드와 커널모드

Virtualization

H/W 위에 VMM(버츄얼 머신 매니저, WSL, VMware, XEN)를 띄워서 여러 OS를 띄움

Computing Environments

  • traditional computing
  • mobile computing
  • client-server computing (web)
  • peer-to-peer computing (더 나아가 blcok chain)
  • cloud computing (aws, azure, gcp)
  • Real-Time Embedded System (화상탐사, 라즈베리파이)

Operating System Services

어떤 컴퓨터 프로그램이 실행될 수 있도록 환경을 제공해주는게 OS

  • User Interface
  • Program execution
  • I/O operation
  • File-system manipluation
  • Communications
  • Error detection
  • Resource allocation
  • Logging
  • Protection and Securty

User and Operating-System Interface

OS에 인터페이스 하기 위한 방법

  • CLI(Command Line Interface)
    • shell : sh, bash, csh, tcsh, zsh, etc.
  • GUI(Graphical User Interface)
    • Windows, Aua for MacOS, KDE/GNOME for Linux, etc.

System Calls

  • System call
  • OS 가 프로그램들에게 제공하는 인터페이스 ⇒ OS의 API

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

Thread의 이해  (0) 2023.03.03

댓글