기사 자격증(알기사, 운영체제 개요)

반응형

운영체제(OS)

 1)운영체제 : 사용자 대신 컴퓨터 시스템의 각종 자원을 효율적으로 관리, 운영하게 하여 사용자에게 최대의 편리성 제공, 컴퓨터 하드웨어와 사용자간의 인터페이스를 담당하는 시스템 프로그램, 중앙처리장치(CPU), 기억장치, 입출력장치, 공유된 코드 데이터 구조 관리

 2) 운영체제는 소프트웨어나 펌웨어로 만들어 져있다.

 3)운영체제 목적

  1. 처리량 향상 : 어떤 일정 시간 내 처리할 수 있는 일의 양을 증가 시킴

  2. 반환시간의 최소화 : 하나의 작업이 시작시간에서부터 결과를 얻을 때 까지 걸리는 시간을 감소시킴

  3. 응답시간 최소화 : 데이터 통신 시스템에서 주어진 입력에 대해서 반응을 나타내는데 걸리는 시간 최소화

  4, 사용가능도 향상 : 시스템 이용을 최대한 빠르게 해줌

  5. 신뢰도 향상 : 시스템이 주어진 문제를 최대한 정확하게 해결할 수 있게 함

 

 4) 커널

  1. 하드웨어 특성으로부터 프로그램들을 격리, 하드웨어와 직접적으로 상호작동으로 프로그램들에게 일관된 서비스 제공

  2. 프로세스, 파일 관리, 입출력장치 관리, 메모리 관리, 시스템호출 등을 한다.

  3. UNIX 계열에서 가장 중요한 부분으로써 부팅 시 가장 먼저 읽힌다.

  4. 시스템 호출을 통해 커널과 통신

  5. 주 기억장치에 상주

  6. 프로세스 스케줄링, 기억장치 관리, 파일시스템 관리 기능 제공

 5) 운영체제의 이중연산 모드

   - 운영체제의 적절한 동작을 보장하기 위해 운영체제 코드의 실행(커널모드)과 사용자 정의 코드 실행(사용자 모드)을 구분

   - 컴퓨터 시스템이 사용자 응용을 위해 실행될 때 사용자 모드에 있음

   - 사용자 모드에서 커널모드로 진입 시 시스템 호출(System call)을 해야한다.

     ※ 시스템 호출 : 사용자 프로그램이 자신을 대신하여 운영체제가 수행하도록 지정되어 있는 작업들을 운영체제에게 요청할 수 있는 방법 제공, trap, syscall이라는 명령어 사용, 소프트웨어 인터럽트로 취급

구분

설명

일반모드

(사용자모드)

특권이 부여되지 않은 상태로 동작

시스템 자원에 제한적으로 접근

보호받는 하위시스템은 서로 간섭하지 않음

제한적인 명령어만 사용

커널모드

(관리자모드)

오류를 발생시킬 수 있는 명령어를 사용

모든 명령어를 사용할 수 있다.

 

운영체제의 구조

 1. 모놀리식 구조

   - 시스템 호출을 통해 파일 시스템, CPU 스케줄링, 메모리관리 등 다양한 기능 제공

   - 시스템 관리에 필요한 모든 기능이 커널 레벨에서 동작하는 방식

   - 시스템 호출 인터페이스 or 커널 안 통신에서 오버헤드가 적다.

   - 구현이 어렵고 유지보수 하기 어렵다.

   - 커널에서 자신이 필요한 기능을 추가 할 경우 전체 커널코드 재 컴파일과 재부팅을 통해 테스트 해야한다.

   - Windows에서 xp 이전까지는 모놀리식 구조에 가까웠다.

 

 2. 계층적 접근

   - 시스템 프로세스를 계층의 레벨에 따라 관리

   - 각 계층의 역할

     1 단계 : 프로세서관리

     2 단계 : 기억장치 관리

     3 단계 : 프로세스 관리

     4 단계 : 주변장치 관리

     5 단계 : 파일 및 데이터 관리

 

   - 장점 : 구현, 디버깅이 간단하다.

   - 단점 : 층을 나누는 것의 기준이 모호하다, 효율성 떨어짐

 

 3, 마이크로 커널

   - 중요치 않은 구성요소는 커널에서 제외, 제외된 구성요소는 시스템 및 사용자 수준 프로그램으로 구현하여 운영체제를 구성하는 방식

   - 현대에서 많이 사용하는 방식이다.

   - 장점 : 확장 용이, 하드웨어간 이식 용이, 높은 보안성과 신뢰성 제공

   - 어떤 기능을 수정하려면 해당 기능이 들어있는 프로세스만 재 컴파일 하면 된다.

   - 1980년대 중반에 카네기 멜론 대학교 연구자들이 마이크로 커널 방식으로 Mach라는 운영체제 개발

 

모듈

   - 운영체제를 설계하는데 이용되는 최근 기술 중 최선책은 적재가능 커널 모듈 기법의 사용

   - 커널 핵심 서비스를 제공하고, 다른 서비스는 커널이 실행되는 동안 동적으로 구현한다.

   - 서비스를 동적으로 링크하는 것은 새로운 기능을 직접 커널에 추가하는 방식보다 바람직

 

인터럽트

   - 컴퓨터의 시스템이 예기치 않은 일 발생시 그것을 CPU에게 알려줌으로써 제어흐름을 변경하는 방법

   - 인터럽트 우선순위 : 전원 기계 오작동 외부신호 입출력(I/O) 잘못된 명령어 슈퍼바이저 콜(SVC)

   - 인터럽트의 종류 : 외부 인터럽트, 내부 인터럽트, S/W 인터럽트

     1. 외부 인터럽트 : I/O 장치, 전원공급 등 외부요인으로 발생하는 인터럽트, 비동기 I/R라고 함

         ex) 전원 이상, 기계착오, 외부신호, I/O

     2. 내부 인터럽트 : 프로그램 자체문제로 인해 인터럽트가 걸리는 경우로써 동기 I/R라고 함

         ex) 잘못된 명령어, 0으로 나누기

 

버퍼링 vs 스풀링

버퍼링

스풀링

H/W서 구현

한 작업에서 I/O,계산 중복 가능

스택 or 큐 방식

단일 사용자

위치는 주기억장치

S/W에서 구현

여러 작업에서 I/O, 계산 중복 가능

큐 방식

다중사용자

위치는 디스크

 

OS의 기술의 흐름

1. 일괄처리 시스템

- 시스템의 작업준비시간을 줄이기 위하여 요구사항이 비슷한 여러개의 작업을 모아 한꺼번에 처리하는 방식

- 입력되는 자료를 일정기간 또는 일정량 모았다가 한꺼번에 처리하는 방식

- 상주모니터를 사용하여 자동 작업 순서화로 전환

 

2. 온라인 시스템(대화식 시스템)

- 사용자가 OS나 프로그램에 직접 명령을 주고 즉시 응답을 받을 수 있는 시스템

 

3. 시분할 시스템

- 각 사용자에게 일정시간을 할당 주어진 시간동안 직접 컴퓨터와 대화하는 형식으로 프로그램 수행

- 다수의 단말 사용자는 마치 자기 혼자만이 CPU를 사용하는 것처럼 생각하게 되는 방식

 

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

- CPU의 효율 극대화 하기 위한 방법, 여러개의 프로그램이 마치 동시에 실행되는 것처럼 처리

- CPU를 사용하다 필요하지 않는 경우 다른 사용자 프로그램이 CPU를 사용하도록 함

- CPU 1개에 프로그램 여러개

 

5. 다중처리 시스템

- CPU가 여러개, 여러개의 프로그램이 존재하여 다중작업 구현

- 신뢰성과 컴퓨터 능력 증대가 목적

- CPU 여러개에 프로그램 여러개

 

6. 실시간 시스템

- 요구하는 자료가 발생할 때마다 즉시 처리하는 방식

 

7. 분산처리 시스템

- 하나의 대형 컴퓨터에서 수행하던 기능을 지역적으로 분산된 여러개의 미니 컴퓨터에 분담시킨후 통신망을 통하여 상호간에 교신처리하는 방식

- 연산속도, 신뢰성 향상, 컴퓨터간 자원을 효율적으로 이용할 수 있음

 

반응형