본문 바로가기
Computer Science/Operating System

[운영체제OS]2. 운영체제란?

by ggyongi 2021. 2. 17.
반응형

********************************

##이 글은 제가 공부하고 있는 책을 요약해놓은 것이므로 본문 내용만 봐선 이해가 어려울 수 있습니다.

 

목차

1. 운영체제 정의

2. 운영체제 기능

3. 운영체제 분류

4. 운영체제 예시 

5. 자원 관리 기능

********************************

 

1. 운영체제 정의

운영체제: 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층.

컴퓨터 전원을 켜면 운영체제가 동시에 실행되어 메모리 상에 올라간다. 하지만 운영체제처럼 규모가 큰 프로그램이 모두 메모리 상에 올라가면 효율 측면에서 좋지 않으므로 항상 필요한 부분만 메모리에 올리고 나머지는 필요할 경우 올려 사용하게 된다. 여기서 메모리에 항상 남아있는 운영체제의 핵심 부분을 커널(kernel)이라 하며 좁은 의미의 운영체제라고도 한다.  

 

2. 운영체제 기능

- 운영체제는 사용자가 직접 다루기 힘든 각종 하드웨어를 운영체제가 관리하는 역할, 사용자에겐 편리한 인터페이스를 제공하는 역할을 한다. 운영체제가 있기에 유치원생도 컴퓨터를 쓸 수 있다는 의미다. 

- 자원을 효율적으로 관리(이때 자원은 CPU,메모리, 하드디스크 등 하드웨어 자원+ 소프트웨어 자원)

- 사용자와 운영체제 자신을 보호(보안)

 

3. 운영체제 분류

3-1. 동시 작업 지원 여부 : 단일작업/다중작업( PC는 메모장, 게임, 인터넷 등 여러 프로그램을 동시에 실행시킬 수 있으므로 다중작업 운영체제임)

- 운영체제가 다중작업을 처리할땐 시분할 시스템을 사용함->CPU가 1개지만 매우 짧은 단위로 여러 프로그램을 번갈아 실행하므로 동시에 실행되는 것처럼 느껴짐

- 메모리 공간을 분할해 여러 프로그램을 동시에 올려놓고 처리하는 시스템을 다중프로그래밍시스템이라고 한다.

- 대화형시스템도 비슷한 의미.

- 결국 다중작업, 시분할, 다중프로그래밍, 대화형시스템 모두 여러개의 프로그램을 동시에 실행한다는 의미.

 

3-2. 다중 사용자 동시 지원 여부 : 단일 사용자용 운영체제/ 다중 사용자용 운영체제(서버가 다중 사용자용의 대표적 예)

 

3-3. 작업처리 방식 : 일괄처리 방식, 시분할 방식, 실시간운영체제

일괄처리방식 - 요청된 작업이 일정량씩 쌓이면 모아서 처리 / 응답시간이 긴 단점

시분할 방식 - 처리능력을 일정한 시간 단위로 분할해 사용

실시간운영체제 - 정해진 시간 안에 어떤 일이 반드시 처리되어야 할 경우에 사용.  두가지로 나뉘는데, 경성 실시간시스템은 시간을 지키지 못할 경우 위험할 수 있는 경우(로켓,원자로 제어시스템), 연성 실시간시스템은 시간단위로 전달되어야 올바른 기능을 수행할 수 있는 시스템(멀티미디어 스트리밍 시스템)

 

4. 운영체제 예시 

윈도우- 특징: 플러그앤플레이(시스템에 새로운 하드웨어를 장착하면 운영체제가 자동으로 감지하여 그에 맞게 설정)

유닉스 - 이식성이 좋고, 소스코드가 공개되어 있음. 리눅스의 등장으로 개인용 컴에서도 유닉스를 사용할 수 있게 됨.

 

5. 자원 관리 기능

하드웨어 자원은 CPU, 메모리, 주변장치(입출력 장치라고도 함)로 구성됨.

CPU하나를 여러개의 프로세스가 효율적으로 나누어 쓸 수 있도록 관리, 메모리도 마찬가지.

전원이 꺼지면 처리중이던 정보가 다 지워지기 때문에 기억해야 하는 부분은 입출력장치 중 하나인 보조기억장치에 파일 형태로 저장한다. 하드디스크가 대표적인 보조기억장치. 

 

CPU 스케줄링: cpu를 가장 효율적으로 사용하면서도, 특정 프로세스가 불이익 당하지 않도록 하는 기법.

선입선출, 라운드 로빈, 우선순위 기법 등이 있다. 

선입선출(first come, first served,선착순) - 먼저 온 프로세스를 먼저 처리 / 앞 프로세스가 과도하게 시간이 걸리면 뒷 프로세스가 금방 처리가능한 것이여도 오래 기다려야 하는 단점이 존재

라운드 로빈 - 사용할 수 있는 시간을 일정하게 고정, 긴 시간을 요하는 프로세스도 일정시간이 지나면 다시 대기열 맨 뒤로가서 기다려야함.

우선순위 스케줄링 - 우선순위를 부여해 중요한 것을 먼저 처리.

 

물리적 메모리 관리방식 : 고정분할 방식, 가변분할 방식, 가상메모리 방식 등이 존재.

고정분할: 물리적 메모리를 미리 몇개의 분할로 나누어 관리. 융통성이 없다는 단점. 분할된 메모리의 크기보다 큰 프로그램은 적재가 불가능. 각 분할마다 1개의 프로그램만 들어가므로 프로그램이 들어가고 남은 부분(내부조각)이 발생됨.

가변분할: 프로그램 크기에 맞게 메모리를 분할. 분할로 인해 프로그램이 적재가 안되는 문제는 해결됨. 내부조각은 발생하지 않지만 외부조각(프로그램 a,b를 실행한뒤 a를 종료하고 a보다 작은 c를 그자리에 넣으면 b와 c사이에 낭비되는 메모리 부분이 발생)이 발생하게 됨. 

가상메모리: 현재 가장 널리 사용되는 메모리 관리 비법. 물리적 메모리보다 더 큰 프로그램을 실행할 수 있다. 프로그램 전체가 항상 동시에 사용되는 것은 아니므로 사용부분만 메모리에 올리고 나머진 하드디스크같은 보조기억장치에 저장해두었다가 쓰는 방식. 이때 사용되는 보조기억장치의 영역을 스왑영역(swap area)이라고 한다. 프로그램을 구성하는 가상메모리 주소 공간은 페이지(page)라는 동일 크기의 작은 영역으로 나뉘어 물리적 메모리와 스왑영역에 일부분씩 저장된다. 이 동일한 단위로 메모리를 나누는 것을 페이징(paging)기법이라 함.

 

주변장치 및 입출력장치: 인터럽트 방법으로 관리

인터럽트: 주변장치가 cpu에게 신호를 발생시켜 서비스를 요청.

cpu가 평소처럼 cpu스케줄링에 따라 작업을 수행하다가 인터럽트가 발생하면 하던 일을 잠시 멈추고 인터럽트에 대한 요청을 수행하게 됨. 운영체제는 멈추기 직전에 수행중이던 작업의 상태를 저장해둔다. 

인터럽트 처리루틴: 인터럽트가 발생했을 시 해주어야 할 작업 내용을 정의한 프로그램. 운영체제 커널 내에 존재.

주변장치는 각 장치마다 그 장치에서 일어나는 업무를 처리하기 위해 일종의 작은 cpu를 가지고 있는데 컨트롤러라고 부른다. 컨트롤러는 해당 장치에 대한 업무를 처리하고, 메인 cpu에 인터럽트를 발생시켜 보고하는 역할.

 

키보드 입력이 들어오면 키보드 컨트롤러가 인터럽트를 발생시켜 cpu에 그 사실을 알려준다. 그러면 cpu가 하던 일을 잠시 멈추고 그 요청을 수행함. 이때 요청을 처리하기 위해서 그 인터럽트에 해당하는 인터럽트 처리루틴을 찾아가는 것이다. 이후 인터럽트 처리가 끝나면 다시 하던 일을 복구시켜 이어나간다.  

 

 

 

 

 

 

비전공자 네카라 신입 취업 노하우

시행착오 끝에 얻어낸 취업 노하우가 모두 담긴 전자책!

kmong.com

댓글