2장 - 운영체제 개요

HelloWorld·2022년 10월 22일
0

1. 운영체제의 정의

운영체제(operating system) : 하드에어 바로 윗단에 설치되는 소프트웨어

→ 하드웨어가 운영체제와 한 몸이 되어야만 사용자에게 쓰일 수 있는 시스템이 됨

운영체제 중 필요한 부분만을 전원이 켜짐과 동시에 메모리에 올려놓고 그렇지 않은 부분은 필요할 때 메모리로 올려서 사용

  • 커널(kernel) : 메모리에 상주하는 운영체제의 부분

2. 운영체제의 기능

1) 하드웨어를 위한 역할 : 하드웨어를 운영체제가 관리

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

자원관리자(resource manager)라고도 불림

자원 = 하드웨어 자원 (CPU, 메모리, 하드디스크 등) + 소프트웨어 자원

2) 사용자를 위한 역할 : 인터페이스 제공

= 시스템을 편리하게 사용할 수 있는 환경 제공

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

4) 사용자와 운영체제 자신을 보호하는 역할

3. 운영체제의 분류

✔️동시 작업을 지원하는지의 여부

1) 단일작업(single tasking)

한 번에 하나의 프로그램만 실행시킬 수 있음 (주로 초창기 운영체제)

ex. 도스(Disk Operating System : DOS)

2) 다중작업(multi tasking)

ex. MS 윈도우, 유닉스

시분할 시스템(time sharing system) : CPU의 작업시간을 여러 프로그램들이 조금씩 나누어서 쓰는 시스템

다중 프로그래밍 시스템(multi-programming system) : 메모리 공간을 분할해 여러 프로그램들을 동시에 올려놓고 처리하는 시스템

대화형 시스템(interactive system) : 사용자 개개인의 관점에서는 각 프로그램에 대한 결과를 곧바로 화면에 나타내는 시스템

다중처리기 시스템(multi-processor system) : 하나의 컴퓨터 안에 CPU가 여러 개 설치된 경우

✔️다중 사용자에 대한 동시 지원 여부

1) 단일 사용자용 운영체제 : 한 번에 한 명의 사용자만이 사용하도록 허용하는 운영체제

  • 한 번에 하나의 작업만 수행 가능한 경우
  • 다중작업이 가능한 경우

2) 다중 사용자용 운영체제 : 여러 사용자가 동시에 접속해 사용할 수 있게 하는 운영체제 ex. 서버

✔️작업을 처리하는 방식

1) 일괄처리(batch processing) 방식 : 요청된 작업을 일정량씩 모아서 한번에 처리하는 방식

처리해야할 여러 작업들을 일정량 모아 일괄적으로 처리하고, 모든 작업이 완전히 종료된 후에 결과 얻을 수 있음

⇒ 응답시간이 김

ex. 펀치 카드 처리 시스템

2) 시분할 방식 : 컴퓨터의 처리 능력을 일정한 시간 단위로 분할해 사용하는 방식

⇒ 일괄처리 방식에 비해 짧은 응답시간 가짐

⇒ 대화형 시스템(사용자의 요청에 대한 결과를 곧바로 얻을 수 있는 시스템)

3) 실시간(real time) 운영체제 : 정해진 시간 안에 어떠한 일이 반드시 처리됨을 보장해야 하는 시스템

ex. 원자로, 공장제어 시스템, 미사일 제어 시스템

  • 경성 실시간 시스템(hard realtime system) : 주어진 시간을 지키지 못할 경우 매우 위험한 결과 초래 가능
  • 연성 실시간 시스템(soft realtime system) : 데이터가 정해진 시간 단위로 전달되어야 올바른 기능 수행 가능

4. 운영체제의 예

5. 운영체제의 자원 관리 기능

운영체제의 핵심적인 기능 = 자원을 효율적으로 관리하는 것

자원 = 하드웨어 자원 + 소프트웨어 자원

1) 하드웨어 자원

CPU 스케쥴링 : 어떤 프로그램에 CPU를 줄 것인가?

메모리 관리 : 한정된 메모리를 어떻게 나누어 사용할 것인가?

파일 관리 : 디스크에 파일을 어떻게 보관할 것인가?

입출력 관리 : 각기 다른 입출력 장치와 컴퓨터 간에 어떻게 정보를 주고받을 것인가?

✔️CPU관리 방법

CPU가 하나밖에 없는 컴퓨터 구조에서도 프로세스는 여러 개가 동시에 수행 될 수 있음

CPU 스케쥴링(CPU scheduling) : 어떤 프로세스에 CPU를 할당하여 작업을 처리할지

→ 가장 효율적으로 사용하면서도 특정 프로세스가 불이익을 당하지 않도록 하는 것

→ 선입선출(First Com First Served: FCFS), 라운드 로빈(Round Robin), 우선순위(proprity)

  • 선입선출

CPU를 사용하기 위해 도착한 프로세스들 중 먼저 온 것을 먼저 처리

CPU를 필요로하는 프로세스가 여럿 있을 때 CPU를 먼저 얻은 프로세스가 원하는 작업을 완료할 때까지 다른 프로세스들이 CPU를 사용하지 못함

CPU 자체의 효율성 : 나쁘지 않음 / 시스템 전체의 효율성 : 비효율적

  • 라운드 로빈

CPU를 한 번 할당받아 사용할 수 있는 시간을 일정하게 고정된 시간으로 제한

긴 작업을 요하는 프로세스가 CPU를 할당받더라도 정해진 시간이 지나면 CPU를 내어놓고 CPU 대기열의 제일 뒤에 가서 줄을 서야 함

  • 우선순위

대기 중인 프로세스들에 우선순위를 부여하고 우선순위가 높은 프로세스에 CPU를 먼저 할당

✔️메모리 관리 방법

메모리 : CPU가 직접 접근할 수 있는 컴퓨터 내부의 기억장치

프로그램이 CPU에서 실행되려면 해당 부분이 메모리에 올라와 있어야 함

주소(address)를 통해 관리됨

프로그램에 메모리가 필요할 때 할당하고, 더 이상 필요하지 않을 때 회수함

→ 고정분할(fixed partition) 방식, 가변분할(variable partition) 방식, 가상메모리(virtual memory) 방식 등

  • 고정분할 방식

물리적 메모리를 몇 개의 분할로 미리 나누어 관리

나뉜 각각의 분할에는 하나의 프로그램 적재 가능 → 융통성 X

내부조각(internal fragment) : 해당 분할에 올라온 프로그램에 의해서도 사용되지 않고, 다른 프로그램에도 할당될 수 없음 = 비효율적으로 낭비되는 공간

  • 가변분할 방식

매 시점 프로그램의 크기에 맞게 메모리를 분할해서 사용하는 방식

분할의 크기 때문에 실행이 제한되지는 않지만 물리적 메모리의 크기보다 큰 프로그램의 실행은 불가능

분할의 크기와 개수가 동적

외부조각(external fragment) : 프로그램에 할당되지는 않았지만 그 크기가 작아 프로그램을 올리지 못하는 메모리 영역

  • 가상메모리 방식

현대 범용 컴퓨터 환경에서 가장 널리 사용되는 메모리 관리 기법

물리적 메모리보다 더 큰 프로그램이 실행되는 것 지원함

가상 메모리의 주솔르 물리적 메모리의 주소로 매핑하여 주소를 변환시킨 후 프로그램을 물리적 메모리에 올림

현재 사용되는 부분만 메모리에 올리고, 나머지는 보조기억장치에 저장해두었다가 필요할 때 적재함

스왑 영역(swap area) : 이 때 이용되는 보조기억장치의 영역

페이징(paging) 기법 : 동일한 단위로 메모리를 나누는 기법 / 가상메모리 주소 공간은 페이지(page)라는 동일한 크기의 작은 단위로 나누어 물리적 메모리와 스왑 영역에 일부분씩 저장됨

✔️주변장치 및 입출력 장치

인터럽트(interrupt)라는 메커니즘을 통해 관리 이루어짐

인터럽트 : CPU의 서비스가 필요한 경우 서비스를 요청하기 위해 발생시키는 신호

CPU는 평소에 스케쥴링에 따라 자기에게 주어진 작업을 수행하다가 인터럽트가 발생하면 하던 일을 잠시 멈추고 인터럽트에 의한 요청 서비스를 수행 함

요청하는 장치와 발생 상황에 따라 다양한 종류가 있음

→ 인터럽트 처리 루틴 : 인터럽트가 발생했을 때 해주어야 할 작업을 정의한 프로그램 코드

컨트롤러(controller) : 주변장치들은 각 장치마다 그 장치에서 일어나는 업무를 관리하기 위한 일종의 작은 CPU

→ 해당 장치에 대한 업무를 처리하고 메인 CPU에 인터럽트를 발생시켜 보고하는 역할을 함

0개의 댓글