[OS] 운영체제의 역할과 구조

뚜비·2023년 5월 23일
0

OS

목록 보기
1/4

운영체제(Operating System)란?

  • 컴퓨터 시스템의 핵심 소프트웨어로 컴퓨터 하드웨어를 관리하는 소프트웨어
  • 사물 인터넷(IoT)을 포함하는 자동차와 홈 기기에서 스마트폰, PC, 대형 컴퓨터 및 클라우드 컴퓨팅 환경까지 어느 곳에나 존재

운영체제(Operating System)의 역할

컴퓨터 시스템은 하드웨어, 운영체제, 응용프로그램, 사용자 로 구분할 수 있음
✅ 사용자를 위해 다양한 application간의 hardware 사용을 제어하고 조정 (중재자 역할)
: 컴퓨터 자원 관리 - Computer Hardware Resources를 효율적으로 관리하고 프로그램에 할당
: 컴퓨터 자원을 사용할 수 있는 환경 제공 - Applications을 위한 몇 가지 서비스(메모리 할당, 패킷 전송 등)를 제공

🤔 잠깐 다른 구성요소의 역할은?
• 하드웨어(Hardware) : CPU, 메모리 및 입출력(I/O) 장치로 구성, 기본 계산용 자원을 제공
• 응용프로그램(Applications) : 사용자의 계산 문제를 해결하기 위해 자원이 어떻게 사용될지를 정의


사용자 관점(User View)

  • 인터페이스에 따라 달라진다.
    EX) 모니터, 키보드, 마우스로 구성된 PC
    → 사용자가 자원을 독점하도록 설계, 사용자가 원하는 서비스를 바로 제공하도록 목표
    → 운영체제는 컴퓨터 시스템을 사용하는데 편리하게 해주도록 설계 But 하드웨어나 소프트웨어 자원이 어떻게 공유되는지 자원의 이용에 신경 쓰지 않음

시스템 관점(System View)

  • Resource allocator
    : 운영체제는 자원의 관리자로서 공정하고 효율적으로 동작
    : 자원이 한정적이기 때문에 서로 상충할 수 있는 많은 요청 중 어느 요청에 자원을 할당할 지 결정

    🤔 Application에 필요한 Resource
    • H/W resources : CPU, memory, I/O devices
    • S/W resources : files, sockets, semaphores


  • Control program
    : application의 실행과 I/O 기기의 운영을 제어
    : 컴퓨터의 부적절한 사용을 방지하기 위해


운영체제의 구조



  • 운영체제는 크게 커널유틸리티(응용 프로그램)로 이루어져 있음
    : 커널 - 하드웨어와 직접적으로 상호작용하여 하드웨어 자원을 관리
    : 유틸리티 - 커널 위에서 동작하는 프로그램으로, 사용자와 시스템 간의 인터페이스를 제공하며, 시스템의 자원 관리와 관련된 작업을 수행

1. 사용자 인터페이스
사용자가 운영체제와 접촉하는 방식에 관한 것

  • CLI(Command Line Interface) : 명령 인터프리터

    : 텍스트 기반의 인터페이스로, 사용자가 운영체제가 수행할 명령어를 입력하여 시스템을 제어
    : Linux, UNIX, Windows를 포함한 운영체제 대부분이 갖고 있음
    : Shell = 명령 인터프리터를 제공하는 시스템에서 해석기

  • GUI(Graphical User Interface)
    : 그래픽 기반의 인터페이스로, 사용자가 마우스 클릭 등의 동작으로 시스템을 제어

  • Touch-Screen Interface
    : 모바일 시스템에서 주로 사용하며, 사용자가 터치 등의 제스처를 취하여 시스템을 제어

2. System Call (시스템 호출)

  • 운영체제에서 제공하는 서비스에 접근하기 위한 프로그래밍 인터페이스
  • 프로그램에서 시스템콜을 호출하면 운영체제의 커널에 있는 함수가 실행되어 하드웨어 자원에 접근하거나, 프로세스 간 통신, 파일 I/O, 메모리 관리 등과 같은 다양한 운영체제 서비스 이용 가능
  • 운영체제가 직접 하드웨어 자원을 제어하면, 여러 프로그램이 동시에 하드웨어 자원을 사용하려고 할 때 충돌이 발생 따라서 운영체제는 시스템콜을 통해 프로그램들이 운영체제의 서비스를 공유
  • 이를 통해 운영체제는 하드웨어 자원을 안전하게 관리하고, 프로그램들은 운영체제의 기능을 활용하여 안정적이고 효율적인 동작 가능

🤔잠깐 용어 정리

  • modebit
    System call의 modebit은 사용자 모드(1)와 커널 모드(0) 사이를 전환하기 위한 비트
    사용자 모드에서는 일반적인 응용 프로그램을 실행 커널 모드에서는 운영체제가 하드웨어 자원을 직접적으로 제어
    따라서 사용자 모드에서 시스템콜을 호출하면, 커널 모드로 전환되어 시스템콜 함수를 실행하고, 실행이 완료되면 다시 사용자 모드로 돌아갑니다.
    modebit이 설정되어 있지 않은 상태에서 시스템콜을 호출하면, 운영체제는 프로세스를 강제로 종료시키는 등의 에러 처리를 수행합니다.
    modebit은 이러한 전환이 안전하게 이루어지도록 보호합니다.
  • 커널(kernel)
    커널은 운영체제의 가장 기본이 되는 부분으로, 운영체제를 구성하는 다양한 서비스와 기능들을 제공합니다.
    예를 들어, 메모리 관리, 프로세스 관리, 입출력 처리, 네트워크 연결 등의 기능을 수행합니다. 또한, 커널은 운영체제의 가장 중요한 기능 중 하나인 보안을 담당하고 있습니다.
    따라서, 커널의 안정성과 보안성은 운영체제의 안정성과 보안성에 직접적인 영향을 미치며, 운영체제 전체의 안정성과 보안성을 결정짓는 중요한 요소입니다.
  • 드라이버(driver)
    드라이버는 운영체제와 장치 간의 인터페이스를 담당하는 소프트웨어입니다.
    이는 장치와 운영체제 간의 프로토콜을 구현하여, 운영체제가 장치를 제어할 수 있도록 합니다.
    일반적으로, 운영체제는 하드웨어 자원을 직접 제어하지 않고, 드라이버를 통해 하드웨어 자원에 접근합니다.
    따라서, 운영체제와 장치 간의 호환성을 보장하기 위해서는 적절한 드라이버가 필요합니다.


😎 참고자료

Operating System Concepts 10th Edition (공룡책)
[CS]운영체제(OS)역할과 구조, 시스템콜, 컴퓨터의 요소 정리

profile
SW Engineer 꿈나무 / 자의식이 있는 컴퓨터

0개의 댓글