운영체제(OS, Operating System)

vvinter·2024년 3월 27일
0

개발용어

목록 보기
16/28

운영체제란?

운영체제란 사용자가 컴퓨터를 편하게 사용할 수 있게 모든 하드웨어 자원을 관리해주는 프로그램으로, 중앙 처리 장치(CPU), 주기억 장치, 보조 기억 장치, 각종 입출력 장치 등이 정상적으로 작동하도록 감시하고 제어하며, 응용 프로그램이 사용하는 CPU 시간, 기억 공간, 입출력 등 하드웨어 자원을 할당하고 배분하는 시스템 관리 기능을 기본으로 제공한다.

쉽게 이야기하면, 운영체제는 중간자 역할을 한다고 할 수 있는데, 사용자의 하드웨어 이용을 편리하게 해주고 시스템 입장에서는 자원을 총괄 관리해주는 프로그램인 것이다.

운영체제의 구조

운영체제는 커널, 인터페이스, 시스템 콜, 드라이버 총 4가지 요소로 구성되어 있다.

📌 커널 Kernel

: 가장 중요한 커널은 용어 자체도 핵심과 같은 의미로 전반적인 프로세스를 뜻한다. 프로세스 관리, 메모리 관리, 저장공간 관리, 연결된 장치 관리 등 컴퓨터에 속한 모든 자원을 관리하는 역할을 한다.

  1. 프로세스 관리 : 프로세스에 CPU를 분배하고 작업에 필요한 제반 환경 제공
  2. 메모리 관리 : 프로세스에 작업 공간을 배치하고 실제 메모리보다 큰 가상공간 제공
  3. 파일 시스템 관리 : 데이터 저장하고 접근할 수 있는 인터페이스 제공
  4. 입출력 관리 : 필요한 입출력 서비스 제공
  5. 프로세스 간 통신 관리 : 공동 작업을 위한 각 프로세스 간 통신 환경 제공

📌 인터페이스 Interface

: 인터페이스는 사용자의 명령을 커널에 전달하고 실행 결과를 사용자에게 알려주는 역할을 한다. 인터페이스의 종류는 크게 2가지로 나뉜다.

  • CLI (Command Line Interface)
    • 글자의 입출력을 통해 사용자와 컴퓨터 간 소통하는 방식
    • 키보드 + 명령어 사용 가능
    • 대표적인 CLI로는 윈도우의 cmd, 맥의 terminal, 리눅스의 terminal
  • GUI (Graphical User Interface)
    • 사용자가 그래픽을 통해 사용자와 소통하는 방식
    • 그래픽으로 전달되는 그림이나, 아이콘을 통해서 소통
    • 키보드 + 마우스 모두 사용 가능
    • Windows, MacOS, Android 등의 운영 체제, 웹 브라우저, 온라인 쇼핑몰, 게임 등이 모두 GUI의 예시

📌 시스템 콜 System Call

: 사용자나 프로그램이 직접적으로 컴퓨터 자원에 접근하는 것을 막고 커널을 보호하기 위해서 만들어진 코드 집합이다. 커널에는 중요한 내용이 담겨있기 때문에 아무나 쉽게 접근할 수 없도록 시스템 콜을 통해서만 호출할 수 있도록 설계되어 있다.

📌 드라이버 Driver

: 드라이버는 프린터, 키보드 및 디스크 드라이브와 같은 하드웨어 장치와 운영체제 간의 통신을 가능하게 해주는 소프트웨어이다. 프린터나 키보드와 같은 특수한 목적을 가진 하드웨어는 드라이버를 설치해 소통할 수 있도록 만들어 주어야 한다.


User Mode 와 Kernel Mode

운영체제를 통해 안정적이고 효율적인 동작을 하기 위해서는 사용자 또는 응용프로그램이 직접 하드웨어에 접근하는 것을 방지해야 한다. 따라서 운영체제는 User Mode, Kernel Mode 2가지 모드로 컴퓨터를 제어하는 데, 두 모드는 요청에 따라 시스템 콜을 통해서 전환된다.

  • User Mode

    • 사용자가 접근할 수 있는 영역을 제한적으로 두고 운영체제의 자원에 함부로 접근하지 못하도록 하는 모드
    • CPU 명령 실행 제한, 하드웨어 직접 접근 불가
    • 코드 작성, 프로세스 실행 명령 등 실행 가능
    • 유저 애플리케이션 코드가 실행
  • Kernel Mode

    • 운영체제의 핵심 기능을 수행하는 커널이 실행되는 모드
    • 운영체제 코드나 디바이스 드라이버 같은 커널모드 코드가 실행되며 하드웨어 제어, 메모리관리, 인터럽트 처리 등의 중요한 작업 수행 가능
    • 모든 시스템 메모리 등 하드웨어에 직접 접근 가능
    • CPU 명령 실행 가능

운영체제의 종류

개인용 컴퓨터(PC)에 사용되는 대표적인 OS로는 Microsoft의 Windows, IBM의 OS/2, Apple의 Mac OS 등이 있으며, 서버용으로는 AT&T가 개발한 유닉스(UNIX), 리눅스(Linux) 등이 있고 모바일 기기용으로 구글의 안드로이드(Android), 애플의 iOS 등이 있다.






📎 참고
https://coduking.tistory.com/entry/운영체제OS란-개념과-구조커널-시스템콜-등
http://terms.tta.or.kr/dictionary/dictionaryView.do?subject=운영체제
https://math-coding.tistory.com/80
https://coduking.tistory.com/entry/운영체제-유저모드-커널모드-시스템콜
https://jerryjerryjerry.tistory.com/177
https://computer-science-student.tistory.com/400

0개의 댓글