[운영체제] Operating System

Seokjun Moon·2023년 3월 31일
0

운영체제

목록 보기
1/23
post-custom-banner

Operating System (운영체제)

운영체제란?

a program that acts as an intermediary between a user of a computer and the computer hardware

컴퓨터 하드웨어와 사용자 또는 애플리케이션 간의 인터페이스를 제공하고, 컴퓨터 시스템의 자원 (하드웨어, 소프트웨어, 데이터 등)을 관리하는 소프트웨어 입니다. 즉, 하드웨어와 소프트웨어의 중재 역할을 한다고 볼 수 있습니다.

운영 체제의 목표

  • 유저의 프로그램을 실행시키고, 쉽게 해결할 수 있도록 = 사용자 프로그램을 보다 효율적으로 실행시키는 것이라고 할 수 있습니다.
  • 컴퓨터 시스템을 더 편리하게 사용할 수 있습니다.
  • 하드웨어를 효율적으로 관리할 수 있습니다.




컴퓨터 시스템 구조

컴퓨터 시스템은 크게 하드웨어와 소프트웨어의 조합으로 이루어져 있고, 좀 더 세분화 하여 아래 4개지 구성요소로 나눌 수 있습니다.

Hardware

  • 물리적인 장치들 입니다.
  • 기본적인 computing resource를 제공합니다.
  • CPU, memory, I/O devices 들이 있습니다.

Operating System (OS)

  • 하드웨어를 관리하고, 사용자 또는 애플리케이션 프로그램과 하드웨어 간의 인터페이스 역할을 합니다.
  • 자원의 할당과 해제, 프로세스 관리, 파일 시스템 관리, 네트워크 관리, 보안 관리 등의 기능을 제공합니다.
  • 자원을 효율적으로 관리합니다.

Application Programs

  • 사용자의 요구에 따라 해당 시스템이 자원을 어떻게 사용할지 정의합니다.
  • 애플리케이션 프로그램은 운영체제와 하드웨어를 활용하여 사용자가 원하는 작업을 수행합니다.
  • 워드프로세서, 웹 브라우저, 데이터베이스 시스템, 그래픽 편집 프로그램 등이 있습니다.

User

  • People, machines, other computers
  • 유저는 운영체제나 애플리케이션 프로그램을 실행시키거나, 데이터를 입력하고, 출력할 수 있습니다.




운영체제가 하는 일

관점의 차이입니다.

유저의 입장

  • 편하고 사용하기 쉽고 좋은 성능을 우선시 합니다.
  • resouce utilization을 신경쓰지 않습니다.

Shared Computer 입장

  • mainframe, minicompter, server 등이 이에 속합니다.
  • 모든 유저를 만족시켜야 합니다.
  • 이 때 운영체제는 resource allocator 의 역할을 합니다.
  • 제한적인 HW를 효율적으로 사용하도록 컨트롤 합니다.

Dedicate System

  • 워크스테이션과 같은 전용 시스템 (dedicate system)의 사용자는 전용 리소스를 가지고 있지만 서버의 공유 리소스를 자주 사용합니다.

Mobile Devices

  • 스마트폰, 태플릿과 같은 모바일 디바이스는 리소스가 부족하고, 사용성과 배터리 수명에 최적화 되어 있습니다.

Embedded Computers

  • 유저 인터페이스가 아주 적거나 없습니다.
  • 주로 사용자 개입 없이 실행됩니다.




Operating Ststem의 정의

운영체제라는 단어는 많은 의미를 담고 있습니다. 왜냐하면

  • 무수히 많은 OS들의 설계 및 사용
  • 토스트 기계, 선박, 우주선, 게임기, 티비, 산업용 제어 시스템 등등
  • 군사용 고정 사용 컴퓨터가 보다 일반적인 목적이 되어 자원 관리 및 프로그램 제어가 필요할 때 탄생하였습니다.

따라서 일반적으로 통용되는 정의는 없습니다.

"OS를 구매할 때 제조사가 제공하는 모든 것"

위 문구가 가장 근접한 표현이라고 할 수 있습니다.

"The one program running at all times on the computer"

위 문구는 kernel을 의미합니다. 커널은 operating system의 한 부분입니다. 보통 OS의 역할은 kernel의 역할과 비슷합니다. OS는 아래 3가지를 모두 포함합니다.

  • system program (운영체제와 함께 제공되지만 커널의 일부가 아닌 프로그램)
  • application program (os와 연관이 없는 프로그램)
  • middleware




컴퓨터 시스템

구성

CPU와 디바이스 컨트롤러가 버스를 통해 메모리를 공유합니다. (현재는 버스 보다는 P2P, Point-to-Point, 방식을 더 많이 사용합니다) 메모리 주기를 두고 CPU와 디바이스 컨트롤러 간의 race가 발생합니다.

작동

  1. I/O 디바이스와 CPU는 동시에 실행 가능합니다.
  2. 각각의 디바이스 컨트롤러는 특정한 디바이스 타입만 담당합니다.
  3. 디바이스 컨트롤러는 로컬 버퍼를 가지고 있습니다.
  4. 디바이스 컨트롤러의 유형들은 이를 관리하기 위한 OS 장치 드라이버가 있습니다.
  5. CPU는 메인 메모리에서 로컬 버퍼로 데이터를 옮깁니다.
  6. 디바이스 컨트롤러는 CPU에게 interrupt 신호를 통해 해당 동작이 끝났음을 알립니다.

Interrupts

Interrupt는 interrupt service routine을 따라 제어권을 넘겨줍니다. Interrupt 아키텍쳐는 반드시 정지된 지점의 instruction 주소를 저장해야 합니다. Operating System은 interrupt driven 입니다. 즉, 일을 하고 있다가 I/O 디바이스에 interrupt 신호를 보내고 읽어오는게 완료되면 해당 작업을 처리 후 원래 하던 작업으로 돌아옵니다.

  • 참고) trap (or exception)은 소프트웨어적으로 생성되는 interrupt 신호입니다. 이 신호는 에러나 유저의 요청으로 발생할 수 있습니다.

Interrupt 핸들링

OS는 레지스터와 프로그램 카운터의 정보를 저장하므로써 CPU 상태를 저장합니다. (저장해야 인터럽트를 처리 후 돌아올 곳이 있기 때문)




Storage Structure

저장소에는 2가지가 있습니다. 저장장치의 기본단위는 비트입니다. 한 비트는 0과 1 둘 중 하나의 값을 가집니다. 1 byte = 8 bit 입니다.

HDD

  • 물리적이고, 용량이 크고, 느립니다.
  • sector와 track으로 구성됩니다.

NVM (Non-volatile memory)

  • 하드보다 빠르고, 비쌉니다.




Storage Hierarchy

저장소는 계층구조를 가지고 있습니다.

  • speed
  • cost
  • volatility
    를 기준으로 나뉩니다.

caching

: 데이터를 보다 빠른 저장소로 복사하는 작업입니다. 메인 메모리는 ssd의 캐시라고 볼 수 있습니다.

Storage-Device Hierarchy

저장소 계층구조는 다음과 같습니다.

현대의 컴퓨터는 DMA 방식을 많이 사용합니다.

DMA(Direct Memory Access)는 I/O 디바이스와 메모리 간의 데이터 전송을 처리하는 기술입니다. CPU가 직접 데이터를 전송하는 것이 아니라 DMA 컨트롤러가 디바이스와 메모리 간의 데이터 전송을 처리합니다. 전송 중간에 인터럽트가 발생하는 횟수가 줄어들어 CPU 부하를 줄일 수 있습니다. 이를 통해

  • 성능 향상
  • 처리량 증가
  • 자원 절약

등의 이점이 생깁니다.

profile
차근차근 천천히
post-custom-banner

0개의 댓글