본문 바로가기

자격증 공부/정보보안 산업기사 필기

1 강 운영체제



1. 운영체제의 주요 기능

1) 프로세스 관리

2) 주기억장치관리

3) 보조기억장치 관리

4) 입출력 시스템 관리

5) 파일 시스템 관리

6) 에러 검출 및 응답


2. 운영체제의 계층 구조

- 1계층 : 프로세서 관리

- 2계층 : 메모리 관리

- 3계층 : 프로세스 관리

- 4계층 : 주변장치 관리

- 5계층 : 파일 관리


3.프로세스를 생성하는데 필요한 작업

- 프로세스 이름 결정

- 프로세스 리스트에 생성된 프로세스 추가

- 생성된 프로세스에 우선순위 부여

- 생성된 프로세스에 PCB 를 생성

- 생성된 프로세스에 초기자원 할당


4. 프로세스 상태

- 생성 상태 ( NEW ) :  프로세스가 생성되었지만 운영체제에 의해 실행가능 하게 되지 못한 상태

- 준비 상태 (Ready ) : 프로세스가 실행을 위해 cpu 할당 받기를 기다리는 상태

- 실행 상태 (  Run  ) : 프로세스가 cpu 를 할당 받아 실제로 실행 되는 상태

- DisPatch : 준비상태의 프로세스가 cpu 를 할당 받아 실행 상태로 전이 됨

- Time Runout : 실행 상태의 프로세스에 할당된 cpu 사용 시간이 완료되어 준비 상태로 되돌아가는 상태

- 종료 상태 : 프로세스의 실행이 완전히 끝나고, cpu 할당이 해제 된 상태

- 대기 상태 : 프로세스가 인터럽트가 완료 될 때까지  멈추어 있는 상태

-  Wake UP : 대기 상태에 있던 프로세스가 준비 상태로 전이되는 과정


* 생성 -> 준비 -> 실행 -> 대기 -> 종료 순으로 진행됨 !


5. 프로세스 스케줄링 정책 구분

1) 선점형 스케줄링 정책 : RR , SRT , 다단계 큐 

2) 기타 비선점


6. 프로세스 교착상태 ( Dead Lock ) : 다른 프로세스의 자원을 무한정 기다리는 상태

- 발생 조건 

* 상호배제 : 뮤탈 익스크루전

* 점유와 대기 : 홀딩 & wait

* 비중단 조건 ( 비선점 )

* 환형대기 조건 : 순환 내의 이전 프로세스가 요청하는 자원을 점유하고 그 프로세스가 꼬리를 무는 경우


- 해결 방안

* 교착 상태 예방 

* 교착 상태 회피

* 교착 상태 탐지

* 교착 상태 복구



7. 주기억 장치 관리 방법

1) 반입 기법 ( Fetch ) : 보조 기억장치의 데이터를 주기억장치로 옮기는 시점을 결정 하는 방법

* 요구 반입 정책 : 프로세스의 호출에 의한 로드 기법, 오버헤드 는 적지만, 페이지 할당 대기시간이 길다는 단점.

* 예상 반입 정책 : 미리 예측 하여 로드 하는 기법. 오버헤드가 큼.


2) 배치 기법 : 페이지나 세그먼트를 어느곳에 적재할 것인가를 결정하는 정책

* 최초 적합

* 최적 적합

* 최악 적합


3) 교체 기법 : 주기억장치 공간 부족 발생시. 어떤 영역의 데이터를 교체할 것인가를 결정하는 정책

* 최적화 기법 : 현실적 불가능

* FIFO : 제일 처음 적재된 page  를 교체 함

* LRU : 가장 오래 사용하지 않은 페이지 교체

* LFU : 사용 횟수가 가장 적은 페이지 교체

* NUR : 최근에 전혀 사용되지 않은 페이지 교체



8. 파일 시스템

1 EXT2 특징

- 파일 시스템의 모든 정보를 슈퍼블럭과  GDT 에 저장한다.

- EXT2 는 부트 섹터와 블럭 그룹 으로 구성되며 블럭 그룹은 파일시스템 손상시 데이터 복원한다

- FSCK  라는 파일 스스템 복구 기능을 제공함

2. EXT3 특징

- 강력한 보안, 디스크 효율적 사용, EXT2 에 비해 빠른 속도. FSCK 에 비해 안정적인 복구 

- 체크섬 검사하지 않는다

- extends 기능 지원 불가

- 조각모음 기능이 없음



9. 분산 시스템

1. 투명성

- 위치 투명성, 이주 투명성, 병행 투명성 , 복제 투명성


10. 유닉스 시스템

1. 쉘

* 본쉘 : AT & T 에 의해 개발. 대부분의 유닉스에 제공하는 기본 쉘 /usr/bin/sh

* C쉘 : 대형 시스템에서 사용을 목표로 설계 됨 /usr/bin/csh 

* Korn 쉘 : 본쉘에 일부 기능 추가함 : /usr/bin/ksh