서론) 운영체제(OS)란 무엇인가?
위 그림처럼, 운영체제는 컴퓨터의 하드웨어 위에서 동작하며, 유틸리티 프로그램과 응용 프로그램들의 기반이 됩니다. 여기서 유틸리티 프로그램으로는 프로그램 에디터, 컴파일러 등이 있습니다.
운영체제는 프로그램 실행 제어 기능이 구현된 함수들이 모인 소프트웨어입니다. 예시로는 윈도우, 리눅스 등이 있습니다. 하드웨어와 프로그램들 사이의 인터페이스 역할을 합니다. end user는 사람입니다.
운영체제가 제공하는 서비스는
1) 프로그램 실행
2) 컴퓨터 자원(하드웨어도, 데이터도 자원이라고 합니다)에 대한 접근
3) 에러 감지와 반응, (내외부 부품을 감지합니다)
4) Accounting 등이 있습니다. 여기서의 accounting은 컴퓨터 시스템 사용 시 자원을 이용하는 것을 의미하며, 이용현황을 통계자료로 제공합니다.
-메인 메모리에는 운영체제 sw와 프로그램, 데이터가 존재합니다. 메인메모리 안의 운영체제는 프로그램 실행 시 응용프로그램들로부터 '디스크에서 a를 읽어와 줘'라는 요청을 받고 이를 수행합니다.
-프로세서는 cpu라고도 불리며, 여러 개 존재할 수 있습니다. instruction을 실행합니다.
-버스를 통해 정보를 이동시키기에, 버스는 정보의 이동통로입니다. 버스는 I/O컨트롤러의 인풋과 아웃풋을 관리합니다.
-I/O 디바이스(하드디스크)에서는 os, 프로그램, 데이터가 존재합니다. 여기에서의 os는 full-set입니다. 부팅 시 메인메모리로 들어갑니다.
->메인메모리 안에도 운영체제가 있고, 하드디스크 안에도 운영체제가 있습니다. 하드디스크의 os는 full set이지만 메인메모리에서의 os는 아닙니다. 필요한 것만 가지고 있고, 사용 후엔 버립니다. 다 가지고 있으면 용량이 너무 커지기 때문이죠
커널은 os에서 핵심적 기능을 하는데, 항상 메인메모리에 상주합니다. 일반적으로 os가 커널이라고 봐도 무방합니다.
Uni-programming, Multi-programming
Uni-programming
Uni-programming의 모습입니다. 단 하나의 프로그램만 실행되는, cpu가 동작하는 모습입니다. run을 할 때 프로그램이 실행되고, wait일 때 프로그램을 쉽니다. 입력이 발생할 경우, 입력이 바로 될 수도, 안될 수도 있는데, 그때까지 기다렸다가 다시 실행을 합니다. cpu는 입출력이 진행될 때 무조건 기다려야 합니다.
또 하나의 예시입니다. 우체국 창구라고 가정하겠습니다. 우체국 직원은 cpu, 앉아있는 사람은 실행 중인 프로그램, 서있는 사람들은 대기 중인 사람들입니다. 앉아있는 사람이 메인메모리에 들어와 있는 프로그램을 의미하는데, 여기서 문제는 2번째 사람은 금방 끝나는 업무인데도 앞사람이 오래 걸린다면 기약 없이 기다려야 합니다.
의자가 여러 개 놓여있는 것을 볼 수 있습니다. a, b, c 고객이 앉아있다고 합시다. a가 서비스를 받을 땐 남들은 다 기다려야 합니다. a가 신청서를 쓰고 있을 때, 직원은 b 고객에게로 넘어갑니다. 이를 멀티프로그래밍이라고 합니다.
사진 그대로, 여러 개의 프로그램이 실행되고 있습니다. combine 된 것을 보면 run 되고 있는 타이밍은 또 각각 다르다는 것을 볼 수 있습니다.
Process Scheduling->다음에 실행할 프로그램을 결정합니다. CPU, job 스케줄링이라고도 합니다. 이는 커널 함수, 스케쥴러에 의해 실행됩니다.
'CSE > 운영체제(OS)' 카테고리의 다른 글
2.Process Description and Control-Definition of a Process, Process States Model (0) | 2023.04.17 |
---|---|
1. Operating System Overview-Timesharing (0) | 2023.04.17 |
댓글