Introduction to Operating Systems

ChoiYongHyeun·2023년 11월 21일
0

운영체제

목록 보기
1/16

운영체제


컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층

좁은 의미

  • 협의의 운영체제 (커널) : 운영체제의 핵심 부분으로 메모리에 상주하는 부분
    - 운영체제 커널 : 컴퓨터를 부팅한 후부터 메모리 에 상주하는 부분

넓은 의미

  • 광의의 운영체제 : 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함하는 개념
    - 메모리에 상주하지 않더라도 부가적인 시스템 유틸리티

    예를 들어 윈도우 운영체제를 설치하게 되면 윈도우 커널 뿐이 아니라 파일을 복사한다든지, 다양한 기능을 사용 할 수 있다. 이런 기능 을 가진 것도 운영 체제의 프로세스 (최소한의 유틸리티)

운영체제의 목적

운영체제는 하드웨어자원을 효율적으로 관리하는 것이 주요한 역할이다.

컴퓨터의 자원은 이미 주어졌다. 어떤 CPU , 어떤 HDD , 어떤 램들과 같은 하드웨어를 가지고 있다면 해당 자원들을 효율적으로 관리하는 것이 운영체제다.

자원 관리 뿐이아니라 컴퓨터 시스템을 편리하게 사용 할 수 있는 환경을 제공한다.

위 사진에서 실제론 하나인 물리적인 컴퓨터를 3명의 사용자가 사용 할 때 운영체제추상화 된 기계 개념의 컴퓨터를 통해 사용자가 독립적으로 자기 컴퓨터에서만 실행이 되는 것처럼 느끼게 한다.

이 때 CPU , RAM 등에서 여러 프로그램이 동시에 실행이 될 때의 자원을 효율적으로 분배하는 것이 운영체제 의 목적

정리 : 운영체제는 하드웨어의 자원을 효율적으로 관리한다.

운영체제의 분류

동시작업 가능 여부

  • 단일 작업 (Single Tasking)
    - 한번에 하나의 작업만 처리
    • 예 : MS-DOS 프롬프트 상에서는 한 명령의 수행을 끝내기 전에 다른 명령을 수행 시킬 수 없음 , 특수한 목적을 가진 경우엔 단일 작업만으로도 충분 할 수 있다.
  • 다중 작업 (Multi tasking)
    - 동시에 두 개 이상의 작업 처리
    • 예 : 현대의 운영체제는 대부분 다중 작업이 가능한 운영 체제로 한 명령의 수행이 끝나기 전에 다른 명령이나 프로그램을 수행 할 수 있음

지원해주는 사용자의 수

  • 단일 사용자 (single user)
    - 예 : MS-DOS , MS Windows

  • 다중 사용자 (multi user)
    - 예 : UNIX , NT server

한 하드웨어를 단일 사용자만 사용 할 수 있는가, 다중 사용자들도 사용 할 수 있는가로 분류한다.

처리 방식

1. 일괄 처리 (batch precessing)

  • 작업 요청의 일정량 모아서 한 꺼번에 처리함
  • 인터렉티브하지 않음

2. 시분할 (time sharing)

우리가 사용하는 컴퓨터는 대부분 시분할 운영체제

시분할 시스템의 주요 특징

다중 작업 : 여러 작업이 동시에 실행 될 수 있음
시분할 : CPU 의 시간을 작은 단위로 나누어 여러 작업에 할당한다. 각 작업은 짧은 시간동안 CPU 를 사용한 후 다음 작업으로 넘어가며, 이러한 방식으로 다수의 작업이 동시에 진행되는 것처럼 사용자는 느낌
시분할 : 사용자들에게 빠르고 실시간으로 응답하는 환경을 제공하며 사용자가 명령하면 마치 즉시 반응하여 결과를 제시하는 것 처럼 느낌
스케줄링: CPU 스케줄링 알고리즘을 사용하여 여러 작업들을 효율적으로 관리하며 각 작업에 적절한 CPU 시간을 할당하여 공평하게 실행한다.

  • 사용자가 사람인 경우에 특화 된 시스템

3. 실시간 (real time)

실시간 시스템은 데드라인이 존재해서 정해진 시간 내에 반드시 실행이 보장되어야 한다. (시분할은 데드라인이 존재하지 않음)

실시간 시스템의 시스템 개념 확장

  • Hard Realtime System (경성 실시간 시스템) : 데드라인이 지켜지지 않으면 큰 문제가 생기는 시스템 (공장 제어, 미사일 제어 등 ..)
  • Soft Realtime System (연성 실시간 시스템) : 데드라인이 지켜지지 않더라도 큰 문제가 생기지 않는 실시간 시스템 (예를 들어 초당 n 프레임의 실시간 스트리밍 등 .. )

정리

우리가 현재 사용하고 있는 운영체제는 멀티 태스킹이 가능하며 멀티 유저, 시분할 시스템의 운영 체제이다.

용어 정리

유사한 용어이지만 단어마다 뉘앙스가 조금은 다름

  • Multi-tasking : 여러 프로그램을 동시에 실행이 가능한 경우 (하지만 이것은 하나의 CPU 가 엄청나게 빠른 속도로 순차적으로 프로세스를 처리하는 거임)
  • Multi-programming : 메모리에 여러 프로그램이 돌아가는 경우
  • time-sharing : 시분할 개념이며 CPU가 시간을 분할하여 여러 프로그램을 처리하는 경우
  • Multi-process : 여러 프로세스를 동시에 실행함

Multi-process

다중 처리기를 의미하며 하나의 컴퓨터에 CPU 가 여러 개 붙어있음을 의미한다. 병렬적으로 동시에 처리

운영 체제의 예

1. UNIX

  • 초창기 대형 컴퓨터를 위해 만들어짐
  • 기계를 위한 컴퓨터였기 때문에 어셈블리 언어 형태로 매우 어려운 언어였으며 기계가 이해 할 수 있도록 만든 언어가 C언어 이다.
  • 대부분의 커널 코드가 C언어 기반
  • Linux 도 UNIX의 일종

    Linux공개 소프트웨어 정신 에 입각한 오픈소스 운영체제
    Linux는 대형 컴퓨터보다는 개인 PC 에 적합

  • 높은 이식성을 가지고 있다는 것은 전혀 다른 기능을 가진 컴퓨터에도 이식하기가 쉽다는 것

2. DOS

  • MS 사에서 1981년 IBM-PC를 위해 개발
  • 개인 사용자를 위해 만들어짐
    - 단일 사용자용 운영체제, 메모리 관리 능력의 한계 (메모리 : 640kb)

3. Window

  • MS 사의 다중 작업용 GUI 기반 운영 체제

    GUI : Graphical User Interface (그래픽 사용자 인터페이스) 의 약자이며
    사용자가 마우스 등의 입력장치를 사용하여 그래픽 요소를 통해 시스템을 조작 할 수 있는 인터페이스

  • Plug and Play , 네트워크 환경 강화
  • DOS용 응용 프로그램과 호환성 제공
  • 블안정성 : 초창기엔 불안했는데 지금은 괜찮다.
  • 풍부한 지원 소프트웨어

운영 체제의 구조

하드웨어의 자원들을 관리하는게 운영 체제의 역할이다.

  • CPU 는 누구한테 CPU 를 줄지를 결정하는 CPU 스케줄링을 해야한다.
  • 메모리 는 한정되어 있는데 어떻게 쪼개어 쓸지에 대한 메모리 관리 를 해야한다.
  • 디스크 는 어떤 방식으로 파일을 보관할지를 디스크 스케줄링을 해야 한다. (쪼개서 보관할지, 일렬로 보관할지 .. )

수강 태도

나는 운영체제다 ... 나는 운영체제다 ... 나는 운영체제다 ..

profile
빨리 가는 유일한 방법은 제대로 가는 것이다

0개의 댓글

관련 채용 정보