컴퓨터/이론 및 tools 사용

시스템 보안 운영체제 운영체제의 개요

review777777 2017. 8. 18. 23:52
반응형

1.  운영체제

 

1.1  운영체제  개요

 

1.1.1  운영체제의  주요 기능

 

o 핵심가이드

운영체제의  목적 이해

운영체제의  기능 이해

프로그램 수행입출력 동작파일시스템 조작통신오류 탐지,    계정관리

 

(1)  운영체제의  목적

 

o 운영체제의 목적은 컴퓨터 시스템의 자원(하드웨어 자원, 정보)을 최대한 효율 적으로 관리, 운영함으로써 사용자들에게 편의성을 제공하고자 하드웨어와 사용자 프로그램 사이에 존재하는 시스템 프로그램으로 사용자 인터페이스 제공성능 향상 등 한정된 자원을 효율적으로 사용하는데 있다. , 신뢰도의 향상, 처 리량의 향상, 응답 시간의 단축, 단순한 계산 능력만을 제공하는 하드웨어를 유  저가 쉽게 접근할 수 있도록 제공, 제한된 시스템 소스를 효율적으로 통제하고 운영함으로써  보다 높은 성능을 발휘할 수 있도록 지원하는    것이다.

처리 능력 향상 단위 시간 내에 최대한 많은 양의 일을 처리할 수 있게 하      

응답 시간 단축 사용자가 어떤 일의 처리를 컴퓨터 시스템에 의뢰하고 나서    그 결과를 얻을 때까지 소요되는 시간으로짧을수록   좋음

- 신뢰도 향상 : 시스템이 주어진 문제를  어느  정도로  정확하게  해결하는가를 의미

- 사용 가능도 향상 : 컴퓨터 시스템을 각 사용자가 요구할 때 어느 정도로 신 속하게 시스템 자원을 지원해 줄 수 있는가를 나타내는    


 

(2)  운영체제의  기능

 

o 운영체제의 기능은 프로그램 생성(Program Creation), 프로그램 실행(Program Execution), 입출력동작(I/O Operation), 파일 시스템 조작, 통신, 오류  발견  및 응답, 자원할당(Resource Allocation), 계정관리(Accounting),  보호(Protection)  등 의 기능이 있다.

 

1.1.2  운영체제의  구조

 

(1)  커널과 유틸리티

 

o 핵심가이드

운영체제의  계층 구조 및 계층별 특징을   이해

시스템 호출에 대한  이해

운영체제의  구조는  컴퓨터  시스템  자원관리  계층에  따라  분류하면 일반적으로

5가지 기능을 수행하는 것으로 볼 수   있다.

 

 

사용자             사용자

 

 

프로세스

 

프로세스

⋅⋅⋅⋅⋅⋅

 

 

계층5

파일 관리                                          계층4

주변장치 관리(입출력 관리)                계층3

 

프로세스 관리(상위단계)            계층2 메모리관리                    계층1

 

프로세스관리(하위단계)

하드웨어

 

 

(그림  1-1)  운영체제의  5계층 구조

 

프로세서 관리(계층1)  :  동기화 및 프로세서 스케줄링   담당

메모리 관리(계층2)  :  메모리의 할당 및 회수 기능을   담당


 

- 프로세스 관리(계층3) : 프로세스의 생성, 제거메시지전달시작과 정지 등의  작업

주변장치 관리(계층4)  :  주변장치의 상태파악과 입출력 장치의   스케줄링

- 파일(정보)관리(계층5) : 파일의  생성과  소멸파일의  열기와  닫기파일의  유 지 및 관리  담당

커널은 하드웨어 특성으로부터 프로그램들을 격리시키고하드웨어와 직접적으  로 상호작동함으로써, 프로그램들에게 일관된 서비스를 제공한다. 커널의 기본 개념은 프로세스와 파일의 관리이다. 그밖에 입출력장치 관리, 메모리 관리 및 시스템호출 인터페이스 등이다. shell이나 유틸리티 또는 응용 프로그램들은 정 의된 시스템호출을 통해서 커널과 통신한다. UNIX 계열의 시스템이 부팅될 때 가장 먼저 읽혀지는 운영체제의 핵심부분으로 주기억 장치에 상주하게 되며

로세스 스케줄링, 기억 장치 관리, 파일 시스템 관리, 운영체제의 고유 기능을 제공한다.

시스템 호출(System  call)

- 이중모드에서 사용자 모드는 특권 명령어를 사용할 수 없으며 이런 경우에 사 용자 프로세스는 운영체제에게  도움을  요청하게 되는데 이를  시스템  호출이  라 한다. , 시스템 호출은 실행중인 프로그램과  운영체제  사이에  인터페이 스를  제공하는 것이다.

 

(2)  이중 모드(dual  mode)  구조

 

o 핵심가이드

이중모드의 개념 이해

일반모드(사용자모드)와 관리모드(모니터모드)의 특징  이해

다중 프로그래밍 환경에서는 실행 중인 하나의 프로그램의 오류가 실행 중인   다른 프로그램에게 영향을  줄 수 있으므로 적절한 보호가 필요하다이중 모드    는 이런 보호 메커니즘 중 하나로서, 두 가지 동작 모드를 제공하여 문제를    으킬 소지가 있는 명령들을 함부로 실행할 수    없도록 제어한다.

- 사용자 모드 : 사용자 모드의 소프트웨어는 특권이 부여되지 않은 상태로 동 작하며 시스템 리소스에 제한적으로만 액세스할 수 있다. 보호 받는 하위 시 스템들은 각자가 소유하고 있는 보호 받는 공간에서 실행되며 서로 간섭하지 않는다사용자 모드에서는 제한적인  명령의 사용만  가능하다.

모니터 모드  :  커널 모드슈퍼바이저  모드라 하며 문제를  일으킬  소지가 있는


 

명령들은 특권 명령으로 분류하고, 이런 명령들은 모니터 모드에서만 수행되  도록 제한한다  모드에서는  모든  명령어 사용이 가능하다.

 

(3)  프로세스 관리

 

o 핵심가이드

프로세스 관리 이해

o 하드웨어에 의존된 가장 하위 단계 수준으로 프로세스 스케줄링을 통해 실행 가능한 프로세스 추적  관리

 

(4)  주기억장치 관리

 

o 핵심가이드

주기억장치 관리 이해

o 주기억장치의 접근을 관리제어하는  처리 장치의 부분으로 주소 변환기억 보  버퍼 기억 등의 기능을  수행

 

(5)  보조기억장치 관리

 

o 핵심가이드

보조기억장치 관리 이해

하드디스크나 디스켓 등의 기억장치에 대한 접근 관리제어  등을 수행하는 기  

 

(6)  입출력 시스템 관리

 

o 핵심가이드

장치구동기의 기능 이해

인터럽트 방식과 DMA  방식  이해

버퍼링과 스풀링 이해

o 컴퓨터의 입출력장치(Input/Output device:  I/O장치)  중앙  시스템과  외부와 의 효율적인 통신방법을 제공한다. 입출력장치는 일명 주변장치라고도 하는데가장  기본적인  것으로  키보드디스플레이장치프린터와  보조저장장치인 자기


 

테이프나 자기 디스크 등이 있다.  o  장치 구동기

- 운영체제와 응용프로그램 및 하드웨어간의 인터페이스를 담당하는 프로그램으  로 하드웨어와 운영체제 응용프로그램의 연결 고리가 되는 프로그램으로 하 드웨어 구성 요소가 운영체제 아래서 제대로 작동하는데 꼭 필요한 프로그램 이며, 장치제어기 또는 드라이버라고 말하기도 한다. 장치 제어기는 명령어를 장치 제어기에  입력하기 위해 하나 이상의 장치 레지스터를 갖고 있는데 장     치 구동기는 이들 명령어를 발생시키고 적절하게 수행되는지를 점검하는 기  능을 수행한다디스크 구동기는 디스크 제어기가  가지고 있는 많은 레지스터  의 사용량, 용도를 관리하게 되며 섹터, 트랙실린더헤드암의  움직임디 스크 인터리브 계수모터 구동기헤드 설정 시간 등 디스크가 적절하게 작   업할 수 있는 모든 기계적인 정보들을 알고    있다.

o    인터럽트와 DMA

- 컴퓨터 시스템에서 사용하는 데이터의 입출력 방식에는 프로그램에 의한 입출  인터럽트에 의한 입출력,  DMA에 의한 입출력 등이   있다.

프로그램에 의한 입출력은 데이터의 입출력 동작이 CPU가 수행하는 프로그  램의 I/O 명령에 의해 수행된다. 따라서, 프로그램 제어 하에서 데이터전송을 수행하려면, 입출력을 수행할 준비가 되어있는가를 알기 위해 CPU가 주변장  치의 상태를 계속 감시하고 있어야   한다.

- 인터럽트에 의한 입출력은 프로그램에 의한 입출력의 단점을 개선하기 위한 방식이다CPU가 계속해서 입출력 상태를 검사하고 있는 것이 아니라 입  출력 장치가 데이터를 전송할 준비가 되면 CPU에 인터럽트를 발생시킨다. 따 라서 CPU가 다른  프로그램을  수행하고 있는 동안에인터페이스가 외부소자  를 모니터한다. CPU가 인터럽트 신호를 받으면 프로그램 카운터에 있는 복귀 주소를 메모리 스택에 저장한 다음, 입출력 전송을 위한 서비스  루틴으로 제  어를 이동한다.

-     DMA(Direct Memory  Access)CPU를 거치지 않고 주변장치와 메모리 사이  에 직접 데이터를 전달하도록 제어하는  인터페이스 방식으로서고속 주변장   (M/T,  DISK  )와 컴퓨터간의 데이터 전송에 많이   사용한다.

버퍼링과 스풀링

버퍼링(Buffering)  :  입출력 장치와 보조 기억장치는 기계적 요인 때문에 CPU   와 비교할 때 매우 느린 속도로 작동한다이와 같은 입출력 장치의 느린 속   도를 보완하는  한 가지 방법으로  버퍼링이 있다  레코드가 읽혀 CPU 


 

것에 대한 연산을 시작함과 동시에 입출력 장치가 곧 다음에 필요한 레코드      를 미리 읽어서 주기억장치에 저장함으로써 CPU가 필요한 레코드를 기다림     없도록 하는 것이다.  이때 이와 같이 미리 읽혀진 레코드들이 존재하는

은 주기억장치의 일부인데 이를 버퍼라 하고, 이와 같은 일련의 과정을 버퍼 링이라 한다.

- 스풀링(Spooling) : 버퍼링은 주기억장치를 버퍼로 사용하는 반면, 스풀링은 디스크를 매우 큰 버퍼처럼 사용하는 것이다. 프로세스들은 입력 또는 출력을 실제 입출력 장치(Physical Device)를 통하지 않고 가상적 입출력 장치(Virtual Device)인 디스크를 매체로  이용한 후이 들을 다시 실제의  입력 장치나 출    력 장치가 행하도록  한다.

 

(7)  파일 관리

 

o 핵심가이드

파일관리 기능 이해

o 운영체제는 프로그램이나 데이터를  파일단위로  관리하며  저장장치에  파일단위 로 저장한다파일에 대한 조작저장방식접근방법 등에 대한 관리    수행

 

(8) 인터럽트

 

o 핵심가이드

인터럽트 개념 이해

인터럽트 종류 및 특징  이해

o 인터럽트는 시스템에 예기치 않은 상황이 발생하였을 때 그것을 운영체제에 알 리고 이를 해결하는 매커니즘이다.  CPU는 인터럽트 발생을 알리는 신호를 받으  면 프로그램 카운터(Program  Counter)의 내용과 프로그램 수행 상태에 관한 모   든 정보를 저장한 후에, 문제의 해결을 위한 처리 과정이 기술된 프로그램인 인 터럽트 루틴의 시작 주소를 프로그램 카운터로 옮긴다. 그 후 인터럽트 루틴을 수행하여 해당 상황을 처리하고, 인터럽트가 발생하기 이전에 수행하던 프로그  램을 계속한다.

인터럽트의 종류

- 입출력 인터럽트(I/O interrupts) -프로세스가 요청한 입출력의 완료등과 관련 하여 발생


 

- 클럭 인터럽트(clock interrupts) - 프로세스의 시간  할당량  종료와  관련하여  발생

-     콘솔 인터럽트(console interrupts) - 콘솔 터미널에서 인터럽트 키(interrupt key)를 누를 때에  발생

-    프로세스간 통신 인터럽트(interprocess communication interrupt) - 임의의 프 로세스가 지역 호스트 또는 원격 호스트의 다른 프로세스로 부터 통신 메시   지를 받을 경우

-     시스템 호출 인터럽트(system  call  interrupts,  SVC  interrupts)  -  시스템  호출 을 하였을 때  발생

- 프로그램 오류 인터럽트(program check interrupts) - 프로그램의 실행중 논리  적인 오류로 인하여  발생

하드웨어 검사 인터럽트(machine  check  interrupt)  -  하드웨어 상의 오류가 있  을 때 발생

 

(9)  기타 관련 용어

 

o 핵심가이드

기타 중요 용어  이해

주요 용어 정의

기아현상디스패처에이징유휴상태큐잉 등

 

1.1.3  운영체제의  기술  발전 흐름

 

o 핵심가이드

운영체제의  기술 발전 흐름 및 기술별 특징    이해

초기  운영체제의 JCL

시분할  운영체제의  타임 슬라이스

 

(1)  초기  운영체제

 

o 단순모니터(상주모니터)

- 프로그래머가 상주 모니터(resident monitor)에게 전달될 정보를 작업 제어 카 드(JCL)  의해  전달하고  상주  모니터는  작업  제어  카드(job  control card)


 

의하여 지시하는 대로 자동 작업 순서를 제공하게 되며 제어 카드가 하나의 프로그램이 실행될 것이라는 것을 나타내면 상주 모니터는 프로그램을 기억 장치에 적재하고 제어를 프로그램으로 전달하며 프로그램이 수행을 완료하면 제어는 모니터로 복귀하게 된다. 모니터는 다음 제어 카드를 읽고 적합한 프 로그램을 적재하는 일 등을  수행한다.

 

(2)  일괄처리와 대화식

 

o 초기의 컴퓨터는 작업자가 작업 준비 과정에서부터 실행에 이르기까지 직접 관 여해야 했다. 테이프를 준비하거나 작업자가 콘솔을 조작하고 있는 동안 CPU는 유휴 상태가 되기 때문에 작업 준비 시간은 커다란 문제가 되었다. 요구사항이 비슷한 작업들을 함께 묶어서 일괄적(Batch)으로 수행함으로써 준비시간 및 작 업간의 전이시간을 줄일 수 있게 한    운영체제

 

(3)  오프라인과 온라인

 

o 입력의 경우에는 CPU가 직접 카드를 읽기 보다는 카드에 있는 내용을 먼저 테 이프에 복사하여 테이프가 차게 되면, 테이프를 컴퓨터로 옮겨 프로그램이 테이 프로부터 내용을 읽고 테이프상에 기록한 후 나중에 테이프의 내용을 출력한다. 카드 판독기와 라인 프린터는 주 컴퓨터에 의해 운영되는 것이 아니라 오프라 인으로 수행

- 온라인 시스템 : CPU와 주변장치(카드판독기와 라인프린터)1:1로 직접 연  결됨

- 오프라인 시스템 : CPU와 주변장치가 1:1로 직접 연결되지 않고, 실행시 주변 장치(테이프와 디스크) 연결

 

(4)  단일 사용자용과 다중  사용자용

 

o 단일 사용자 운영체제는 한 컴퓨터 시스템에 대해 한 순간에 한 사용자만이 사 용하는 시스템예로 MS-DOS

o 다중 사용자 운영체제는  동시에 여러 사용자들이 사용할 수 있도록 구성된 시  스템예로,  UNIX,  LINUX,  윈도우 2000  계열


 

(5)  다중  프로그래밍 운영체제

 

o 입출력 장치와 CPU 사이의 속도 차이를 이용하여 CPU를 항상 이용하기 위한 방안으로 주기억장치 내에 2개 이상의 여러 프로그램을 적재하여 그중 하나가 실행될 경우 그 작업은 실행 중에 자기 테이프나 입출력 장치 등의 조작으로     인해 CPU의 유휴시간이 발생하면 운영체제가 다른 작업으로 전환하여 새로운 작업을 수행하므로 CPU의 유휴시간을 줄여 CPU의 이용률을 향상시키는 방법 이다.

 

(6)  시분할  운영체제

 

o 시분할 운영체제는 다중 프로그래밍 방법의 변형된 형태로서 많은 사용자가 동 시에 컴퓨터를 공유하도록 하는 것이다. 시분할 시스템은 아주 짧은 일정시간 동안만 CPU를 사용하고 다음 사용자에게 사용 권한을 전환한다. 그러므로 각 사용자는 자신이 컴퓨터 시스템을 독점하고 있는 것처럼 생각할 있다.

o 타임 슬라이스는 실행 프로그램을 연산 처리장치의 할당 시간을 돌아가며 부여 받아 동작하는 방식

 

(7)  분산  운영체제

 

o 분산처리 시스템은 여러 개의 물리적 처리기들 사이에서 연산을 지역적 또는 기능적으로 분산시켜 처리하고자 하는 것이다분산 처리 시스템은 정보의 전송   을 위한 통신 네트워크에 의하여 상호 연결된 여러 개의 처리기 사이에 기능적     인 분산 및 상호 협동적인 처리를 통하여 연산 속도와 신뢰성을 향상시키고 컴  퓨터 자원을 효율적으로 공유하는  시스템이다.

 

(8)  다중  처리기용 운영체제

 

여러 개의 프로세서(Processor)가 공용 기억장치(Shared  Memory)를 통해 제어    및 자원을 공유하면서 수행하는 시스템이다. 이를 위해서 운영체제는 여러 프로 세서간의 기억장치 공유를 지원할 방법, 여러 프로세서의 사용을 스케줄링 방법 등이 중요하다.


반응형

'컴퓨터 > 이론 및 tools 사용' 카테고리의 다른 글

포트 스캐닝의 종류  (0) 2017.08.28
정보보안기사 필기 출제기준  (0) 2017.08.19
frp active 능동모드 passive 수동모드  (0) 2017.07.19
IPv4 주소체계  (0) 2017.06.20
BPS와 보 Baud  (0) 2017.06.20
ARP spoofing 스푸핑  (0) 2017.06.20
http error state code http 에러 코드, 상태 코드  (0) 2017.03.21