[운영체제] 1. Introduction to Operating Systems

off_sujin·2022년 7월 7일
1

운영체제

목록 보기
1/5
post-thumbnail

📑 본 글은 반효경 교수님의 운영체제 강의를 듣고 정리한 글입니다.

운영체제를 배운 지 2년 정도 지났는데 벌써 내용이 가물가물해서 운영체제 스터디를 들어갔다.
여름방학 동안 그 유명한 반효경 교수님의 운영체제 강의를 듣고 내가 이해한 내용을 정리해보고자 한다!!


운영체제란 무엇인가
운영체제의 목적
운영체제의 분류
운영체제의 구조

🌵 1. 운영체제가 뭐야?


운영체제는 위의 그림처럼 하드웨어 바로 위에 설치되는 소프트웨어이다.
중간에서 사용자와 하드웨어를 연결해주기도 하고, 크롬이나 한컴과 같은 다양한 소프트웨어를 관리해주기도 한다.
운영체제는 컴퓨터가 처음 켜질 때 부팅을 한 뒤, 항상 메모리에 상주하는 소프트웨어이다.

1) 좁은 의미의 운영체제

  • 좁은 의미에서 운영체제는 커널을 의미한다.
  • 커널은 항상 메모리에 상주하고 있는 운영체제의 핵심 부분이다.

2) 넓은 의미의 운영체제

  • 넓은 의미로는 커널 뿐만 아니라 부가적인 시스템 유틸리티를 포함한 것을 말한다.
  • 파일을 복사해주는 프로그램 등의 시스템 유틸리티들은 항상 메모리에 올라가는 것이 아니고 필요할 때에만 올라가게된다.

🌵 2. 운영체제는 뭐하는 애니?

운영체제를 한 마디로 설명하자면 자원 관리자이다.

1) 사용자에게 편리한 환경 제공

  • 위의 사진처럼 여러 사용자 및 프로그램들에게 각각 독자적으로 컴퓨터를 사용하는 것 같은 환상을 주는 역할을 한다.
  • 운영체제가 하드웨어를 다루는 복잡한 부분을 처리해주기 때문에 사용자는 이러한 부분을 몰라도 프로그램을 실행할 수 있다.

2) 컴퓨터 시스템 내의 자원을 효율적으로 관리

  • 전공자로서 운영체제의 가장 핵심적인 기능은 바로 자원을 효율적으로 관리해준다는 것이다.
  • 여기에서 자원이란 CPU, 메모리, 하드디스크와 같은 하드웨어와 소프트웨어를 포함하는 개념이다.
  • 운영체제는 좋은 성능을 내기 위해서 자원을 효율적으로 관리한다.
  • 그와 동시에 자원이 특정 작업에 쏠리거나, 소외받는 일이 생기지 않도록 형평성 있게 자원을 분배하는 역할도 수행한다.

🌵 3. 운영체제에는 뭔 종류가 있는거야?

아래의 3가지 기준으로 운영체제를 분류할 수 있다.

1) 동시 작업 가능 여부

단일 작업 운영체제

  • 한 번에 하나의 작업만 처리할 수 있다.
  • 아주 옛날의 운영체제 ex) MS-DOS

다중 작업 운영체제

  • 동시에 여러 개의 작업을 처리할 수 있다.
  • 요즘엔 거의 다중 작업 운영체제를 지원한다. ex) UNIX, MS Windows

2) 사용자 수

단일 사용자용 운영체제

  • 한 번에 한 명의 사용자만 사용할 수 있다.

다중 사용자용 운영체제

  • 여러 사용자가 동시에 접속해서 사용할 수 있다.

3) 처리 방식

일괄 처리 방식 운영체제

  • 작업을 그때그때 처리하는 것이 아니고, 적당히 모아서 한꺼번에 처리한다.
  • 아주 옛날 방식이다. ex) Punch Card 시스템

시분할 방식 운영체제

  • CPU를 일정 시간 단위로 분할해서 여러 작업을 수행한다.
  • 요청에 대한 결과를 바로바로 확인할 수 있는 Interactive 시스템이다.

실시간 방식 운영체제

  • 정해진 시간에 작업이 반드시 처리되도록 한다.
  • ex) 미사일 발사, 반도체 공장, 동영상 시청
  • 시간 내에 처리하지 못했을 때 발생하는 결과의 위험성에 따라서 2가지로 분류한다.
    • 경성 실시간 시스템 : 시간을 지키지 않으면 매우 치명적인 일이 발생한다. ex) 미사일 발사, 반도체 공장
    • 연성 실시간 시스템 : 시간을 지키지 않아도 그렇게 치명적인 일은 발생하지 않는다. ex) 동영상 시청

🌵 4. 운영체제 구조는 어때?


운영체제는 이와 같이 다양한 자원들을 관리한다.

CPU 스케줄링

운영체제 이론에서는 보통 CPU가 하나인 컴퓨터를 기준으로 한다.
따라서 운영체제는 여러 프로세스가 CPU를 효율적으로 사용할 수 있도록 관리해야한다.
후에 효율성과 형평성을 지키기 위해 등장한 CPU 스케줄링 기법들을 살펴볼 것이다.

메모리 관리

프로그램이 CPU에서 실행되려면 관련된 특정 부분이 메모리에 올라가 있어야한다.
하지만 메모리는 한정되어있기 때문에 여러 프로그램을 수용하기 위한 관리 매커니즘이 필요하다.
다음 시간에 자세히 알아본다.

디스크 스케줄링

디스크에서 파일을 읽어올 때 헤더가 해당 파일의 위치로 가서 내용을 읽어 온다.
이때 최소한의 움직임으로 작업을 수행하는 것이 목표이다.
만약 헤더가 특정 파일을 읽으러 가는 길에 새로운 파일을 읽어달라는 요청이 들어오면 그 요청을 먼저 수행한다.

입출력 관리

I/O 디바이스에는 키보드, 모니터, 마우스, 스피커 등이 있고, CPU에 비해 수행속도가 느리다.
그래서 천천히 자기 할 일을 마치고, CPU에 인터럽트를 거는 식으로 작업을 수행한다.

profile
학습 중..

0개의 댓글