운영체제란?


컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스를 담당하는 프로그램. 사용자가 응용 프로그램을 편리하게 실행 할 수 있도록 도와준다.

하드웨어와 컴퓨터 사용자를 연결하는 매개체 역할.





운영체제의 역할


하드웨어와 컴퓨터 사용자를 연결하는 역할. 응용프로그램 간의 하드웨어 사용 제어, 운영체제는 컴퓨터 하드웨어와 응용 프로그램 간의 인터페이스

역할을 하면서 CPU, 메모리와 같은 컴퓨터 자원을 관리하고 사용자에게 편의를 제공한다.


1. 조정자로서의 역할 : 운영 요소를 적절하게 사용 할 수있도록 제어. 다만 프로그램이 작업 할 수 있는 환경만 제공 할 뿐 직접일은 못한다.

                                    예를들어 워드프로세서 역할을 직접 수행하는 것이 아닌, 워드프로세서가 제 기능을 하도록 도움만 준다.


2. 자원 할당자 또는 관리자로서의 역할 : 각 응용 프로그램에 필요한 자원을 할당해준다.

                                                     (프로세서 시간, 메모리 공간, 파일저장 공간, 입출력장치 등 )

                                                     그런데 각 응용프로그램에서 동일한 자원을 요구하는 충돌이 발생 할 수 있다. 이럴때 운영체제는 

                                                     시스템을 공정하고 효율적으로 운영하기위해 자원 할당을 어떻게 할지에 대한 관리자 역할도 한다.


3. 입출력 장치와 사용자 프로그램 제어 : 시스템의 부적절한 사용이나 오류 방지를 위해 사용자 프로그램의 실행을 제어






버퍼링


입출력장치의 느린 속도를 보완하기 위한 운영체제의 기능 중 하나로 프로세서와 입출력장치를 유휴시간이 없도록 프로세서의 연산과정과 함께

어떤 작업의 입출력을 동시에 수행하는 방식

데이터 구성 단위로는 레코드가 쓰인다. 버퍼링의 성능은 처리되는 레코드 수에 따라 달라진다.




스풀링


디스크를 매우 큰 버퍼처럼 사용하는 것. 입력장치에서 미리 읽어들여 출력장치가 받을 수 있을 때 까지 출력파일을 저장.

버퍼링과 비교하여 스풀링은 한 작업의 입출력을 수행하면서 다른 작업의 계산도 할 수 있다는 장점을 갖는다.




운영체제의 유형별 특징


1. 다중프로그래밍 시스템

2. 시분할 시스템

3. 분산처리 시스템

4. 다중처리 시스템

5. 단일 사용자 시스템




다중프로그래밍 시스템


프로세서가 항상 수행할 작압을 가지도록하여 프로세서 이용률을 증진 시키는 방식. 수행 될 작업을 메모리에 적재하여 프로세서가 유휴하지 않는 상태로 만드는 방식. 인터럽트를 수행하여 여러 개의 작업이 수행 준비를 갖추고 있을때 해당 작업을 결정하여 수행한다.


시분할 시스템


다중프로그래밍을 논리적으로 확장한 개념으로 프로세서를 통해 다중 작업을 교대로 수행하여 컴퓨터가 여러개 있는것 처럼 착각하게 만든다.

여러작업이 메모리에 저장되어 있는 경우 한 작업이 다른 작업의 데이터를 변경하는 등의 작업에 대한 보호가 필요하다. 또한 다수의 사용자가 접근하는 파일은 접근 권한을 두어 특정 권한을 가진 사용자만 접근 할 수 있도록 파일 시스템을 보호해야 한다.


분산처리 시스템


시스템마다 운영체제와 메모리를 가지고 독립적으로 운영되며 필요할 때 통신하는 시스템 둘 이상의 독립된 컴퓨터 시스템을 통신선으로 연결한다.





운영체제 기능


자원관리와 프로그램을 위한 인터페이스 역할 수행


1. 자원관리 기능 메모리, 프로세스, 장치, 파일 등의 시스템 구성요소를 관리하는 역할


- 메모리 관리 : 프로세서가 명령어를 수행하려면 명령어가 메인 메모리에 있어야 한다. 프로그램을 수행하려면 프로그램이 절대주소로 맵핑되어 메인 메모리에 저장되어야 한다. 운영체제는 메모리의 사용부분, 사용자 점검, 기억 공간에 어떤 프로세스를 저장할지 결정, 기억 공간 할당 및 회수 결정을 담당한다.


- 보조기억장치 관리 : 비어있는 공간관리, 저장 장소 할당, 디스크 스케줄링을 담당한다.


- 프로세스 관리 : 프로세스와 스레드 스케줄링, 사용자, 시스템프로세스 생성 및 제거, 프로세스 중지와 재수행, 프로세스 동기화를 위한 기법제공, 

                       프로세스 통신을 위한 기법 제공, 교착상태 방지 기법 제공을 담당


- 장치 관리 : 임시 저장시스템, 장치드라이버 인터페이스, 특정하드웨어 장치를 위한 드라이버를 담당


- 파일 관리 : 파일 생성과 제거, 디렉터리 생성과 제거, 보조기억장치에 있는 파일의 맵핑, 안전한 저장매체에 파일 저장 담당


 2. 운영체제의 기타 기능

 

 - 시스템 보호 : 운영체제에 있는 프로세스는 다른 사용자들의 프로그램으로 부터 파일, 기억장치, 프로세서, 기타 자원등에 대하여 적절한 권한을 부여한                       프로세스만 수행될수 있어야 한다.


 - 네트워킹 : 시스템에 있는 프로세서는 통신 네트워크를 통해 연결된다.


 - 명령 해석기와 시스템 관리 :사용자가 입력한 여러가지 명령은 제어 문장에 의해 운영체제에 전달이 되고, 이 전달을 명령해석기가 담당




운영체제 서비스


운영체제는 사용자에게 다음과 같은 서비스를 제공한다.


부트스트래핑 서비스

사용자서비스

시스템 서비스

시스템 호출 서비스


1. 부트스트래핑 서비스


부트스트래핑 : 운영체제가 적재 되는 과정, 부팅이라고도 한다. 부트스트랩 로더는 disk track 0, 나머지는 다른 부분에 적재 된다.


                                       







'프로그래밍 > 운영체제' 카테고리의 다른 글

[ 기술면접 정리 서버 / 운영체제 ]  (0) 2019.03.06
[1] 컴퓨터 시스템 소개  (0) 2019.02.07
쓰레드란?  (0) 2019.02.05

레지스터

: 프로세서에 위치한 고속메모리, 프로세서가 바로 사용할 수 있는 데이터를 담는다.




메인 메모리

: 고유 주소를 갖는 워드, 바이트로 구성된 대규모 배열 주소를 읽거나 기록함으로써 상호작용 한다.

 프로세서는 메인 메모리로부터 데이터를 읽거나 쓴다.




캐시 

:처리 속도가 빠른 프로세서와 느린 메인 메모리 사이에서 데이터나 정보를 저장하는 고속 버퍼이다. 메인 메모리에서 일정 블록의 데이터를 가져와

워드 단위로 프로세서에 전달하여 정보를 빠르게 제공하는 역할

메인 메모리 주소 영역을 한 번 읽어 들일수 있는 라인크기로 나눈 후 각 블록에 번호를 부여 한 후 이번호를 태그로 저장.



캐시적중 (Cache Hit) : 프로세서는 메인메모리 접근 전에 캐시를 먼저 조사한다. 만약 캐시가 데이터를 보관하고 있으면, 캐시는 데이터 라인에서 요청한 데이터를 읽어

프로세서에 보낸다.


캐시실패 (Cache Miss) : 원하는 주소의 블록에 캐시에 없을때 캐시제어기는 메인메모리에서 해당 블록을 읽어 캐시에 넣고 프로세서에 전송




시스템의 동작 과정


Data를 디지털 형태로 입력받아 메모리에 저장된 명령어 목록에 따라 처리 후 출력. 저장






인터럽트


컴퓨터에서 설정된 장치에서 프로세서로 보내는 하드웨어 신호. 인터럽트를 받은 프로그램은 실행을 멈추고 다른 프로그램이 실행 된다.


시스템이 예측하지 못하는 갑작스런 정전, 시스템으로 부터의 긴급 요청, 잘못된 명령어 수행, 입출력 작업완료 같은 긴급상황을 처리하기 위해서 필요


프로그램의 정상 실행을 일시 정지 시키는 과정과 재개하는 과정의 연속으로 실행, 사용자 프로그램에 별도로 인터럽트를 위한 조치가 필요한것은 아니다.











참조 : 운영체제 그림으로 배우는 원리와 구조 / 구현회 저 / 한빛 아카데미

'프로그래밍 > 운영체제' 카테고리의 다른 글

[ 기술면접 정리 서버 / 운영체제 ]  (0) 2019.03.06
[2] 운영체제 소개  (0) 2019.02.07
쓰레드란?  (0) 2019.02.05

+ Recent posts