운영체제(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/O2.
내부 인터럽트 : 프로그램 자체문제로 인해 인터럽트가 걸리는 경우로써 동기 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. 분산처리 시스템
- 하나의 대형 컴퓨터에서 수행하던 기능을 지역적으로 분산된 여러개의 미니 컴퓨터에 분담시킨후 통신망을 통하여 상호간에 교신ㆍ처리하는 방식
- 연산속도, 신뢰성 향상, 컴퓨터간 자원을 효율적으로 이용할 수 있음
'보안기사 > 필기' 카테고리의 다른 글
기사 자격증(알기사, 보안 운영체제) (0) | 2019.01.23 |
---|---|
기사 자격증(알기사, 운영체제 주요기술) (0) | 2019.01.21 |
기사 자격증(알기사, 보안위협 및 대응책) (0) | 2019.01.20 |
기사자격증(알기사, 접근통제 보안 모델) (0) | 2019.01.19 |
기사자격증(알기사, 사용자인증) (0) | 2019.01.19 |