Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Tags
more
Archives
Today
Total
관리 메뉴

archive

1. 운영체제 개요 (1) 본문

CS/운영체제

1. 운영체제 개요 (1)

안정민 2024. 1. 11. 00:36

[1-1] 운영체제의 목적과 기능

 

1. 운영체제의 목적

-편리성 : 운영체제는 컴퓨터를 보다 편리하게 사용할 수 있게 해 준다

-효율성 : 컴퓨터 시스템 자원을 효율적으로 사용할 수 있게 해 준다

-발전성 : 운영체제는 효과적인 개발과 시험이 가능해야 하고, 서비스를 방해하지 않거 새로운 시스템 기능을 도입할 수 있도록 구축되어야 한다.

 

2. 사용자 / 컴퓨터 인터페이스로서의 운영체제

-계층적인 접근

-최종 사용자인 응용 프로그램 사용자 -> 컴퓨터 구조에 관심이 없음, 컴퓨터를 응용프로그램의 집합으로 바라봄

-가장 중요한 시스템 프로그램을 모아놓은 것이 운영체제라고 할 수 있음

-운영체제는 하드웨어에 관한 상세한 것을 프로그래머에게 숨기고, 시스템을 편리하게 사용할 수 있게 해 주는 인터페이스를 제공한다.

-즉, 운영체제는 프로그래머와 응용 프로그램이 그와 같은 기능과 서비스에 쉽게 접근하고 편리하게 사용할 수 있게 해 준다.

 

-운영체제가 제공하는 서비스는 다음과 같다

: 프로그램 개발 ) 프로그램 작성 지원 -> 문서 편집기, 디버거 등의 기능과 서비스 제공

                            이 프로그램은 실질적으로 운영체제의 커널의 일부는 아니지만 운영체제 상에서 접근 가능한 유틸리티

                            운영체제 배포 시 응용 프로그램 개발 도구라는 명목으로 함께 제공된다

: 프로그램 실행) 하나의 프로그램이 실행되기 위해서는 운영체제에 의해 여러 단계를 거침

                           주기억장치에 명령어와 데이터 적재 -> 입출력장치와 파일 초기화 -> 다른 자원들의 준비

                            운영체제는 사용자를 대신하여 필요자원을 스케줄링하는 의무를 수행한다.

: 입출력 장치 접근) 각 입출력장치의 독특한 명령어나 제어 시그널 등과 같은 세부사항을 감추어 인터페이스 역할

                                프로그래머는 단순히 읽기와 쓰기 관점에서 입출력 장치를 사용할 수 있게 된다

: 시스템 접근) 공공시스템의 경우 운영체제는 시스템 전체 및 특정 시스템 자원에 대한 접근을 제어

                        불볍사용자로부터 데이터 보호, 자원 전쟁 문제 해결

: 에러 발견 및 응답) 컴퓨터 실행 도중 발생하는 다양한 내외부 하드웨어 에러 및 소프트웨어 에러의 영향을 최소화

                                에러 조건을 제거할 수 있도록 응답해야한다

                                이러한 응답에는 에러를 일으킨 프로그램의 종료, 연산의 재시도, 에러 보고 등이 있다

: 어카운팅 ) 여러가지 자원에 대한 사용 통계를 수집하고 응답시간과 같은 성능 척도를 모니터링

                    이는 튜인에 유용하게 사용되며 과금의 목적으로 사용되기도 한다.

: 인스트러션 셋 구조 (ISA) ) 컴퓨터가 따르고 있는 기계 명령어 집합 규정, 모두 이를 직접 사용해 동작

: 응용 실행파일 인터페이스 ) ABI, 이 기종 기계 상의 프로그램 간 또는 서로 다른 컴파일러가 생산하는 실행파일 간의 바이너리 호환성을 제공하기 위한 표준

: 응용 프로그래밍 인터페이스

 

3. 자원 관리자로서의 운영체제

-컴퓨터 =데이터의 이동, 저장, 처리와 이들 기능을 제어하는데 필요한 자원들의 집합

-운영체제는 이들 자원의 관리를 책임진다.

 

-보통 우리는 제어를 하는 주체는 제어를 받는 것과는 구별되고 분리되는 것이라고 판단

-그러나 다음 두 가지 경우에서 운영체제는 다름

(1) 운영체제는 일반적인 소프트웨어와 똑같이 동작. 즉, 운영체제도 처리기에 의해 수행되는 하나의 프로그램임

(2) 운영체제는 빈번히 제어를 응용에게 양도하는데, 제어를 돌려받는 것도 처리기에 의존해야한다.

 

-즉, 운영체제는 처리기에게 다른 시스템 자원의 사용을 지시하며 다른 프로그램이 수행될 시점을 결정한다

-운영체제는 처리기가 어떤 유용한 작업을 수행할 수 있도록 제어를 양도한 다음, 처리기가 다음 응용의 수행을 준비하는데 충분한 시간 동안 제어를 돌려받는다

 

4. 운영체제 발전의 용이성

-다음과 같은 이유에서 운영체제는 계속해서 발전할 것이다

(1) 하드웨어 업그레이드와 새로운 형태의 하드웨어

(2) 새로운 서비스 : 사용자 또는 시스템 관리자의 요구에 따라 새로운 서비스 제공을 위해 운영체제가 확장되어야

(3) 버그 수정 : 어떤 운영체제도 결함을 가지고 있음

 

-따라서 운영체제는 이러한 요구에 쉽게 적응할 수 있도록 여러가지 사항을 고려하여 설계되어야 한다.

-운영체제는 이를 위해 그 구성이 모듈화되어야 하며, 모듈 간에 명확하게 인터페이스가 정의되고, 문서화되어야 함

 

[1-2] 운영체제의 발전

-지난 수십년 간 운영체제가 어떻게 발전해 왔는가

 

1. 순차처리

- 운영체제 지원 안 되던 시기

-기계어로 작성된 프로그램, 입력장치를 통해 적재

-에러 -> 콘솔 상의 발광체가 표시

-초창기 두 가지 문제점 (

(1) 스케줄링 : 기계 사용시간 예약을 위해 등록 용지 이용, 통상 30분 단위로 예약, 60분 예약하고 45분 사용 시 15분 낭비

(2) 준비시간 : 단일 프로그램이 실행되기 위해 필요한 각각의 단계를 준비하다 에러가 발생하면 처음부터 다시 반복해야

                       수행의 준비에만 상당한 시간이 걸리게 된다

 

-이와 같이 사용자가 순차적으로 컴퓨터를 접근 -> 순차처리 방식 (serial processing)

- 여러 사람이 공동으로 이용 가능한 라이브러리 함수, 링커, 로더, 디버거, 입출력 루틴은의 시스템 소프트웨어가 개발됨

 

2. 단순 일괄 처리

-고가의 컴퓨터 -> 컴퓨터의 이용률을 극대화하는 것이 중요했음 -> 스케줄링이 용납될 수 없었음

-모니터 (monitor) 의 사용 

: 사용자는 더이상 작업 처리 단계별로 컴퓨터에게 직접 명령을 내릴 필요가 없게 되었다.

: 그 대신 사용자는 작업을 카드나 테이프에 담아 컴퓨터 오퍼레이터에게 제출하고, 오퍼레이터는 작업들을 순서대로 한데 모아 모니터가 처리할 수 있도록 전체 작업 묶음을 입력장치에 넣는다 그리고 이가 완료되면 자동으로 다음 프로그램 적재

모니터 관점 처리기 관점
일련의 사건 제어
모니터 대부분이 항상 수행 가능한 상태로 주기억장치에 적재
이 부분을 상주 모니터라고 부름 (resident monitor)

나머지 부분들은 유틸리티와 공용 함수로 구성
공용함수는 어떤 작업 실행 초기에 모니터로 적재하는 서브루틴을 의미한다

자동으로 완료되면 제어를 다음 프로그램으로 넘기고, 실행이 완료되면 아웃풋 장치를 통해 출력되어 사용자에게 전달
어떤 시점에 보니까 처리기가 모니터 프로그램이 놓여 있는 주기억장치에서 명령어를 수행하고 있다.
이들 명령어는 다음 작업을 주기억장치의 다름부분으로 읽어들이는 역할을 한다.

작업 읽기가 완료되면 분기명령어 수행하여 사용자 프로그램의 시작 부분으로 분기한다

작업으로의 제어이동 / 모니터로의 제어 복귀

 

-모니터링은 스케줄링의 문제를 해결할 수 있음

-일련의 작업들이 대기 행렬에 배열이 된 다음, 중간 유휴 시간 없이 최대한 신속하게 수행된다

 

-또 모니터는 작업 준비 시간동 낭비하지 않게 해 줌

-작업 제어 언어 명령

-사용자 프로그앰은 사용자모드에서 숳ㅇ, 모니터는 시스템 모드 혹은 터널 모드라 불리는 모드에서 수행

 

-위 운영체제에서는 사용자 프로그램과 모니터가 번갈아 수행되므로 주기억장치의 일부를 모니터가 계속 차지, 약간의 컴퓨터 시간을 모니터가 사용하는 등의 두 가지 오버헤드가 발생

 

3. 멀티프로그래밍 일괄처리 시스템

-

'CS > 운영체제' 카테고리의 다른 글

3. 쓰레드 (2)  (0) 2024.01.23
3. 쓰레드 (1)  (0) 2024.01.23
2. 프로세스 기술과 제어 (2)  (0) 2024.01.18
2. 프로세스 기술과 제어 (1)  (0) 2024.01.16