CS/Operating System

[Operating System] Operating System

hanseongbugi 2024. 4. 4. 15:04

Operating System(운영체제)?

  • 하드웨어를 관리하고, 컴퓨터 시스템의 자원을 효율적으로 관리한다.
  • 응용프로그램과 하드웨어 간의 인터페이스로써 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공한다.
  • 운영체제는 사용자가 컴퓨터를 편리하고 효과적으로 사용할 수 있도록 환경을 제공하는 시스템 소프트웨어라고 할 수 있다.
    • 종류로는 Window, Linux, UNIX, MS-DOS 등이 있으며, 시스템의 역할 구분에 따라 용이점이 있다.

운영체제 목적

  • 운영체제의 목적에는 처리능력 향상, 사용 가능도 향상, 신뢰도 향상, 반환 시간 단축 등이 있다.
  • 처리능력, 반환시간, 사용가능도, 신뢰도는 운영체제의 성능을 평가하는 기준이 된다.
  • 처리능력(Throughput)
    • 일정시간 내에 시스템이 처리하는 일의 양
  • 반환시간(Turn Around Time)
    • 시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간
  • 사용가능도(Availability)
    • 시스템을 사용할 필요가 있을 때 즉시 사용 가능한 정도
  • 신뢰도(Reliabilty)
    • 시스템이 주어진 문제를 정확하게 해결하는 정도

운영체제의 역할

프로세스 관리

  • 운영체제에서 작동하는 응용 프로그램을 관리하는 기능이다.
  • 어떤 의미에서는 프로세서(CPU)를 관리하는 것이라고 볼 수도 있다.
  • 현재 CPU를 점유해야할 프로세스를 결정하고, 실제 CPU를 프로세스에 할당하며, 이 프로세스간 공유 자원 접근과 통신 등을 관리하게 된다.

저장장치 관리

  • 1차 저장장치에 해당하는 메인 메모리와 2차 저장장치에 해당하는 하드디스크, NAND 등을 관리하는 기능이다.
  • 1차 저장장치(Main Memory)
    • 프로세스에 할당하는 메모리 영역의 할당과 해제
    • 각 메모리 영역간의 침범 방지
    • 메인 메모리의 효율적 활용을 위한 가상 메모리 기능
  • 2차 저장장치(HDD, NAND Flash Memory 등)
    • 파일 형식의 데이터 저장
    • 파일 데이터 관리를 위한 파일 시스템을 OS에서 관리
    • FAT, NTFS, EXT2, JFS, XFS 등 많은 파일 시스템들이 개발되어 사용 중

네트워킹

  • 네트워킹은 컴퓨터 활용의 핵심과도 같아졌다.
  • TCP/IP 기반의 인터넷에 연결하거나, 응용프로그램이 네트워크를 사용하려면 운영체제에서 네트워크 프로토콜을 지원해야한다.
    • 현재 상용 OS들은 다양하고 많은 네트워크 프로토콜을 지원한다.
  • 운영체제는 사용자와 컴퓨터 하드웨어 사이에 위치하여, 하드웨어를 운영 및 관리하고 명령어를 제어하여 응용프로그램 및 하드웨어를 소프트웨어적으로 제어 및 관리를 해야한다.

사용자 관리

  • 우리가 사용하는 PC는 하나의 PC로 여러 사람이 사용하는 경우가 많다.
  • 운영체제는 한 컴퓨터를 여러 사람이 사용하는 환경도 제공한다.
  • 운영체제는 각 계정을 관리하는 기능을 가지고 있으며, 사용자 별로 프라이버시와 보안을 위해 개인 파일에 대해선 다른 사용자가 접근할 수 없도록 한다.
  • 파일이나 시스템 자원에 접근 권한을 지정할 수 있도록 지원하는 것이 사용자 관리 기능이다.

디바이스 드라이버

  • 운영체제는 시스템의 자원, 하드웨어를 관리한다.
  • 시스템에는 여러 하드웨어가 붙어있는데, 이들을 운영체제에서 인식하고 관리하게 만들어 응용 프로그램이 하드웨어를 사용할 수 있게 만들어야 한다.
  • 운영체제 안에는 하드웨어를 추상화 해주는 디바이스 드라이버라고 불리는 계층이 존재한다.
  • 하드웨어의 종류가 많은 만큼, 운영체제 내부의 디바이스 드라이버도 많이 존재한다.
  • 수많은 디바이스 드라이버들을 관리하는 기능 또한 운영체제가 맡고 있다.

운영체제의 위치

  • 사용자 응용프로그램(Application)은 특정 운영체제에 맞춰서 만든다.
    • 하나의 애플리케이션은 서로 다른 운영체제에서 수행할 수 없다.

  • 애플리케이션은 그림과 같이 운영체제 위에서 수행한다. 
    • 즉, 하드웨어 자원을 직접 사용하지 않고 운영체제가 제공하는 자원만을 사용할 수 있다.

운영체제 구조

  • 운영체제는 크게 커널(kernel) 명령어 해석기(Command interpreter, shell)로 나뉜다.
  • 커널은 말그대로 운영체제의 핵심으로 운영체제가 수행하는 모든 것이 저장되어 있다.
  • 명령어 해석기는 사용자가 커널(운영체제)에 요청하는 명령어를 해석하여 커널에 요청하고 그 결과를 출력한다.
  • 사용자는 GUI(Graphical User Interface)나 CLI(Command Line Interface) 같은 방식으로 운영체제에 명령을 요청할 수 있다.

 

 

 

출처

https://coding-factory.tistory.com/300

 

[OS] 운영체제란 무엇인가?

운영체제란? 운영체제(Operating System)는 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 사용자가 컴퓨터를 편리하고, 효과적으로 사용할 수 있도록 환경을 제공하는 여러 프로그램의 모임입니

coding-factory.tistory.com

https://velog.io/@codemcd/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9COS-1.-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C%EB%9E%80

 

[운영체제(OS)] 1. 운영체제란?

운영체제(Operating System)는 사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어이다. 우리가 일반적으로 컴퓨터를 사용하면서 실행한 모든 프로그램들은 운영체제에서 관리하고 제어한다. 대표

velog.io

https://github.com/gyoogle/tech-interview-for-developer

 

GitHub - gyoogle/tech-interview-for-developer: 👶🏻 신입 개발자 전공 지식 & 기술 면접 백과사전 📖

👶🏻 신입 개발자 전공 지식 & 기술 면접 백과사전 📖. Contribute to gyoogle/tech-interview-for-developer development by creating an account on GitHub.

github.com