[cs study] operating system 01

zio·2022년 8월 9일
0

CS Study

목록 보기
1/1

OS의 5가지 기능

1. 프로세스 관리: 여러개의 프로세스가 충돌 없이 원활하게 수행할 수 있도록 관리한다
2. 메모리 관리: 한정된 용량의 주 기억장치에 여러개의 프로그램을 필요에 맞게 효율적으로 사용할 수 있도록 관리한다
3. 저장공간 관리(파일시스템): 파일시스템 기능을 통해 파일을 관리하고 디스크 관리 기능을 통해 보조 기억 장치를 관리한다
4. 디바이스 관리(드라이버): 컴퓨터에 연결된 입출력 장치 및 주변 하드웨어 장치를 인식하고 관리 및 제어한다
5. 네트워크: 프로세스간 정보 교환이 필요할 때에 네트워크를 통해 수행한다

Bootstrap

: 컴퓨터가 구동을 시작하기 위해 수행하는 초기 프로그램

필요한 이유

  • 필요한 이유: 컴퓨터가 구동을 시작하기 위해서는 수행할 초기 프로그램이 있어야 하기 때문이다
  • ROM에 저장하는 이유: 비휘발성이기 때문에 전원을 꺼도 안 날라감
  • 운영체제 패키지에 포함시키지 않는 이유: Bootstrap이 운영체제보다 먼저 실행되어야 하기 때문이다

수행 기능

시스템에 전원이 인가되었을 때, 하드웨어를 초기화하고, 하드웨어에 있는 OS를 메모리에 로드한다. OS가 저장된 메모리의 첫번째 주소 값을 PC에 넘겨주어 OS 부팅을 실행한다.

마지막 명령어

OS가 저장돼있는 메모리의 첫번째 주소를 PC에 넘겨준다

Multiprogramming

: 처리해야 될 process가 많은 상황. 실행해야 할 program이 2개 이상인 상황.
한 program이 IO를 실행하는 오랜 시간 동안 CPU의 활용도를 높이기 위하여 다른 program들을 실행할 수 있도록 하기 위해 도입되었다

Multiprogramming 또는 multitasking 환경에서 OS

  • 필요한 이유: 제한된 컴퓨팅 자원인 CPU, Main Memory, HDD등을 2개 이상의 다수의 프로그램이 공유함으로써 다양한 문제가 발생할 수 있으며, 이를 해결하기 위하여 시스템을 관리하는 소프트웨어가 필요하기 때문에 OS가 필요하다
  • CPU: 다수의 프로그램들이 순차적이고 효율적으로 CPU를 사용할 수 있도록 스케줄링이 필요하다
  • Main Memory: 다수의 프로그램들이 제한된 메모리 공간을 분할하여 사용할 수 있도록 관리가 필요하다
  • HDD: 다수의 프로그램들이 제한된 영구저장 공간을 분할하여 사용할 수 있도록 관리가 필요하다

Multiprogramming 환경에 있어서, 한 process가 IO operation을 포함하지 않는다면 자신이 종료될 때 까지 CPU를 독점할 수 있다.

[문제점]

이와 같은 상황에서 만약 이 process가 실행되는 시간이 매우 길다면 해당 program은 CPU를 최대한 활용하여 신속하게 실행될 수 있지만, 다수의 사용자나 다수의 프로그램 관점에서 본다면 다른 process들이 기다려야 하는 시간(wating time)이 너무 길어지는 문제가 발생하여 시스템 전체의 효율이 낮아진다.
또한, IO subsystem 또한 중요한 자원(resource)인데, 이들의 활용도가 낮아져서 시스템 전체의 활용도가 저하된다.

[해결방안]

Time Slice, Time Quantum, Time sharing
: 한 process가 실행될 수 있는 시간을 정해두고 그 시간이 지나면 다른 process로 넘겨준다. 즉, multitasking 방식의 스케줄링 알고리즘을 채택하는 것이 필요하다.
이 해결 방안에 필요한 하드웨어는 clock

[출처]
이강우 교수님 운영체제 수업

profile
🐣

0개의 댓글