본문 바로가기

CS/O.S

(운영체제) 운영체제의 개요

운영체제의 정의

하드웨어 윗단에 설치되는 소프트웨어

커널 - 메모리에 상주하는 운영체제의 부분 (좁은 의미의 운영체제)

  • 운영체제 코드 중 가장 핵심적인 부분을 뜻함 

운영체제의 기능

1. 시스템내의 자원을 효율적인 관리

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

3. 시스템의 보안 및 보호 기능 수행

 

운영체제의 분류 

  • 단일 작업용 운영체제 : 한 번에 하나의 프로그램만 수행시킬 수 있는 운영체제 (운영체제의 초기모델)
  • 다중 작업용 운영체제 : 두개 이상의 프로그램을 수행시킬 수 있는 운영체제

다중 작업용 운영체제라고 할지라도 CPU는 매 순간 하나의 프로그램만이 수행된다. 처리 속도가 워낙 빨라 사용자 입장에서는 

여러 프로그램이 동시에 수행되는 것처럼 보인다. (시분할 시스템 - 여러 프로그램 들이 조금씩 나누어 쓰는 시스템)

 

메모리다중 프로그래밍 시스템

: 여러 프로그램들이 조금씩 메모리 공간을 분할해서 사용하는 시스템

 

대화형 시스템

: 여러 프로그램이 실행 중임에도 불구하고 입력의 결과가 곧바로 출력의 결과가 나타나는 시스템(혼자 사용하는 것처럼 느낌)

 

다중 처리기 시스템

: 하나의 컴퓨터에 여러 개의 CPU가 탑재되어있는 시스템 - 속도는 빨라지지만 단일 보다 더욱 복잡한 메커니즘을 필요로 함

 

 

동시 지원

  • 단일 사용자용 운영체제  : 한 번에 한 명의 사용자만이 사용
  • 다중 사용자용 운영체제 : 여러 사용자가 동시에 접속해서 사용  ex) 서버

 

처리방식

 

  • 일괄 처리 방식 : 작업 요청의 일정량을 모아서 한꺼번에 처리하는 방식
  • 시분할 처리 방식 : 컴퓨터의 처리 능력을 일정한 시간 단위로 분할해서 처리하는 방식 ex) UNIX
  • 실시간 처리 방식 : 정해진 시간에 반드시 종료됨이 보장되는 시분할 방식 - 어길 경우 위험이 따름

운영체제의 자원 관리 기능

 

운영체제의 기능 네 가지

1. CPU 스케쥴링 : 어떤 프로그램에게 CPU를 할당할 것인가

2. 메모리 관리 : 한정된 메모리를 어떻게 관리할 것인가

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

4. 입출력 관리 : 입출력 장치와의 의사소통을 어떻게 할 것인가

 

1. CPU 스케쥴링

선입선출 : 먼저 도착한 프로세스를 먼저 처리

라운드 로빈 :CPU를 한 번 할당받아 사용할 수 있는 시간을 제한 만약 시간이 지나면 다음 프로세스 처리

우선순위 : 상대적으로 더 중요한 프로세스에 높은 우선순위를 매겨 우선 처리

 

2. 메모리 관리

운영체제는 메모리의 어느 영역이 어떻게 관리되는지를 파악하기 위해서 각 메모리에 주소를 할당한다.

운영체제는 불필요한 자원을 소비하지 않도록 메모리를 효율적으로 관리해야 한다.

 

물리적 메모리 관리 방식

고정 분할 방식 : 물리적 메모리를 몇 개의 분할로 나눈다. 나뉜 각각의 분할에는 하나의 프로그램이 적재된다.

융통성이 없음

- 최대 프로그램 개수 = 분할 개수

- 분할 크기보다 더 큰 프로그램은 적재 불가

- 분할 크기보다 작은 프로그램이 적재된 경우 자원이 낭비 발생 (내부 조각 발생)

 

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

- 분할 크기보다 더 큰 프로그램은 적재 불가 -> 이점은 해결

- 내부 조각은 발생하지 않지만 외부 조각이 발생

  • 외부 조각 예시 :

A에 100 영역 할당

B 50 할당  A 작업 완료

A영역에 C 할당 (이때  C의 크기는 80) -> 20의 빈 공간 생김

40 크기의 D 할당 -> 빈 공간인 20에 할당하려 하였으나 D의 크기가 이보다 큼

결국 D는 사용하지 못함

이때 사용하지 못하는 20만큼의 빈 공간을 외부 조각이라고 한다.

 

 

가상 메모리 관리방식 : 물리적 메모리보다 더 큰 프로그램이 실행되는 것을 지원

 

가상 메모리 관리 방식 - 거의 모은 컴퓨터 시스템에서 사용

: 실행될 수 있는 프로그램의 크기는 가상 메모리 크기에 의해 결정

 

- 현재 사용되는 부분만 메모리에 올리고 사용되지 않는 부분은 하드디스크와 같은 보조 기억장치에 저장해 두었다가

필요할 때 메모리에 적재한다.

보조 기억 장치의 영역 : 스왑 영역

스왑 영역에는 프로그램을 구성하는 주소 공간을 페이지라는 동일한 크기의 작은 단위로 저장

 

 

입출력 관리

주변 장치들은 CPU애 서비스가 필요할 경우 인터럽트라는 신호를 발생시켜 서비스를 요청

  • CPU는 스케쥴링에 따라 주어진 작업을 수행하다 인터럽트가 발생하면 하던 일을 멈추고 해당 서비스를 수행

인터럽트 처리 루틴 : 인터럽트가 발생하였을 때 처리해야 할 작업을 정의한 프로그램 코드 (커널 코드 중 일부분)

 

컨트롤러 : 주변 장치들이 가지고 있는 일종의 작은 CPU 

  • 컨트롤러는 처리를 완료하고 메인 CPU에 인터럽트를 발생시켜 보고한다.

참고 서적

운영 체제와 정보 기술의 원리
국내도서
저자 : 반효경
출판 : 이화여자대학교출판문화원 2008.01.31
상세보기