운영체제와 정보기술의 원리
- 운영체제란?
- 컴퓨터를 지배하는 가장 체계적인 소프트웨어
- 컴퓨터 하드웨어 바로 윗단에 설치된다.
- 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층이다.
- 컴퓨터의 전원을 켜면 운영체제가 동시에 실행되고 운영체제도 소프트웨어이므로 동시에 메모리에 올라간다. 이때 메모리에 올라가는 꼭 필요한 부분은 커널(kernel)이라고 한다. 커널은 운영체제의 핵심적인 부분이며 나머지 부분은 필요할 때 메모리로 올려서 사용한다.
- 운영체제의 기능
- 기본적인 역할
- 하드웨어를 위한 역할
- 사용자가 직접 다루기 힘든 각종 하드웨어를 운영체제가 관리한다.
- 시스템 내의 자원을 효율적으로 관리한다.
- 운영체제는 자원 관리자(resource manager)라고 부르기도 한다.
- 이 때 자원은 CPU, 메모리, 하드디스크, 각종 소프트웨어를 의미한다.
- 운영체제는 이러한 자원을 효율적으로 관리하여 가장 좋은 성능을 내도록 한다.
- 어떻게 효율적으로 좋은 성능을 낼 수 있을까?
- 어떻게 자원을 형평성 있게 분배할 수 있을까?
- 사용자를 위한 역할
- 사용자에게는 편리한 인터페이스를 제공한다.
- 시스템을 편리하게 사용할 수 있는 환경을 제공한다.
- 하드웨어를 위한 역할
- 기본적인 역할
- 운영체제 분류
- single tasking
- 한번에 하나의 프로그램만 실행 가능
- multitasking
- 여러 프로그램이 CPU와 메모리를 공유해서 작업한다.
- time sharing system (시분할 시스템)
- 여러 프로그램들이 CPU에서 번갈아 실행되면 사용자 입장에서 동시에 실행되는 것처럼 보인다.
- CPU의 작업시간을 여러 프로그램이 조금씩 나누어 사용한다.
- multi-programming system
- 여러 프로그램을 동시에 메모리에 올려놓고 처리하는 시스템
- interactive system (대화형 시스템)
- 사용자는 입력 결과를 실시간으로 확인할 수 있다.
- multi-processor system (다중처리기 시스템)
- 하나의 컴퓨터에 여러 CPU가 설치되어 동작한다.
- 여러 프로그램이 동시에 실행되어 속도가 빠르지만 여러 CPU를 관리하기 위해 복잡한 매커니즘을 필요로 한다.
- 다중 사용자에 대한 동시 지원 여부
- 단일 사용자용 운영체제
- dos, window
- 다중 사용자용 운영체제
- 웹 서버, 이메일 서버
- 단일 사용자용 운영체제
- 작업 처리 방식
- batch 방식
- 요청된 작업을 일정량씩 모아서 한번에 처리하는 방식
- 사용자 입장에서 응답시간이 길어진다.
- 시분할 방식
- 여러 작업을 수행할 때 컴퓨터의 처리 능력을 일정한 시간 단위로 분할해 사용하는 방식
- 사용자 입장에서 응답시간이 짧다.
- 실시간 방식
- 실시간 운영체제는 정해진 시간 안에 어떠한 일이 반드시 처리됨을 보장해야하는 시스템에서 사용됨.
- hard realtime system
- 주어진 시간을 지키지 못할 경우 매우 위험한 결과를 초래할 가능성이 있는 시스템
- 로켓, 원자로 제어시스템
- soft realtime system
- 데이터가 정해진 시간 단위로 전달되어야 올바른 기능을 수행할 수 있는 시스템
- 멀티미디어 스트리밍 시스템
- batch 방식
- single tasking
- 운영체제의 자원 관리 기능
- 하드웨어 자원
- CPU
- 어떤 프로그램에 CPU를 할당할 것인가? (CPU 스케줄링)
- CPU를 효율적으로 사용하면서도 특정 프로세스가 불이익을 당하지 않도록 하는 것이 목표이다.
- 선입선출(First Come, First Served)
- 라운드 로빈 (Round Robin)
- CPU를 한번 할당받아 사용할 수 있는 시간을 일정하게 고정된 시간으로 제한하고 작업을 다 처리하지 못하더라도 제한 시간이 지나면 CPU 대기열의 맨 뒤로 가서 대기한다.
- 우선순위(Priority)
- Memory
- 한정된 메모리를 어떻게 나누어 사용할 것인가?
- 메모리는 CPU가 직접 접근할 수 있는 컴퓨터 내부의 기억장치이다.
- 프로그램이 CPU에서 실행되려면 해당 부분이 메모리에 올라가 있어야 한다.
- 운영체제는 메모리의 어느 부분이 어떤 프로그램에 의해 사용되고 있는지를 파악하여 유지하고 관리한다. address(주소)를 통해 관리된다.
- 운영체제는 프로그램에 메모리가 필요할 때 할당하고, 더 이상 필요하지 않을 때 회수한다.
- 운영체제는 각 프로세스가 자신의 메모리 영역에만 접근할 수 있게 관리하는 역할도 수행한다.
- 고정 분할(fixed partition)
- 가변 분할(variable partition)
- 가상 메모리(virtual memory)
- 보조기억장치
- 디스크에 파일을 어떻게 보관할 것인가?
- 입출력 장치
- 각기 다른 입출력 장치와 컴퓨터 간에 어떻게 정보를 주고 받을 것인가?
- interrupt 매커니즘을 통해 관리된다.
- 주변 장치들은 해당 장치에서 일어나는 업무를 관리하기 위해 일종의 작은 CPU인 controller(제어기)를 가지고 있다.
- 사용자로부터 입력이 들어오면 키보드 컨트롤러가 interrupt 신호를 CPU에게 신호를 발생시킨다.
- CPU는 인터럽트 신호가 발생하면 수행하던 작업을 임시 저장 후 인터럽트 신호를 발생시킨 작업을 수행한다.
- 운영체제는 인터럽트의 종류마다 서로 다른 인터럽트 처리 루틴은 운영체제 커널 내에 존재하는 코드로 가지고 있다.
- 인터럽트가 발생하면 운영체제는 해당하는 인터럽트 처리루틴을 찾아서 정의된 코드에 따라 일을 수행하게 된다.
- CPU
- 하드웨어 자원
'OS' 카테고리의 다른 글
| 메모리 관리 (1) | 2023.03.26 |
|---|---|
| CPU 스케줄링 (0) | 2023.03.18 |
| 프로세스 관리 (0) | 2023.03.11 |
| 프로그램의 구조와 실행 (0) | 2023.03.03 |
| 컴퓨터 시스템의 동작 원리 (1) | 2023.02.25 |
댓글