* Locality(구역성, 국부성)
1. 실행 중인 프로세스가 주기억장치를 참조할 때는 일부 페이지만 집중적으로 참조하는 성질이 있다는 이론
2. Denning에 의해 증명
3. 스레싱을 방지하기 위한 워킹 셋 이론의 기반
4. 캐시 메모리 시스템의 이론적 근거
5. 프로세스가 집중적으로 사용하는 페이지를 알아내는 중 하나, 가상 기억장치 관리의 이론적 근거
6. 종류
가. Temporal Locality(시간 구역성)
- 프로세스가 실행되면서 하나의 페이지를 일정 시간 동안 집중적으로 액세스 하는 현상
- 한 번 참조한 페이지는 가까운 시간 내에 계속 참조할 가능성이 높음을 의미
- Loop, Stack, Sun Routine, Counting, Totalting에 사용되는 변수 등에서 시간구역성이 이루어진다.
나. Spatiak Locality(공간 구역성)
- 프로세스 실행 시 일정 위치의 페이지를 집중적으로 액세스 하는 현상
- 배열 순회, 순차적 코드의 실행, 근처에 선언될 때, 같은 영역에 있는 변수를 참조할 때 공간구역성이 이뤄진다.
* 디렉터리의 구조
1. 1단계 디렉터리
- 가장 간단, 모든 파일이 하나의 디렉터리 내에 위치
- 모든 파일들이 유일한 이름을 가짐
- 이해가 용이하지만, 파일의 수나 사용자의 수가 증가하면 관리가 복잡해짐
2. 2단계 디렉터리
- 중앙에 MFD(마스터 파일 디렉터리)가 있고 그아래 사용자별로 UFD가 있는 2 계층 구조
- MFD는 UFD를 관리, UFD는 사용자별 파일을 관리
- 서로 다른 디렉터리에는 같은 파일 이름 사용 가능
3. 트리 디렉터리
- 하나의 루트 디렉터리와 여러 개의 종속 디렉터리
- 대부분의 운영체제에서 사용
4. 비순환 그래프 디렉터리
- 디렉터리를 공동으로 사용할 수 있다.
5. 일반적인 그래프 디렉터리
- 트리 구조에 링크를 첨가시켜 순환을 허용
* FIFO 스케쥴링
- (누적 사용시간 - 도착시간)/ 작업 개수
* 링커
- 언어 번역 프로그램이 생성한 목적 프로그램들과 라이브러리, 또 다른 실행 프로그램 등을 연결하여 실행 가능한
로드 모듈(목적 프로그램)을 만드는 시스템 소프트웨어
- 연결 기능만 수행하는 로더의 한 형태다. 링커에 의해 수행되는 작업을 링킹(Linking)이라 한다.
* 로더
- 컴퓨터 내부로 정보를 들여오거나, 로드 모듈을 디스크 등 보조기억장치로부터 주기억장치에 적재하는 소프트웨어
- 종류
- Compile And Go 로더
- 별도의 로더 없이 언어 번역 프로그램이 로더의 기능까지 수행하는 방식
- Absolute Loader(절대 로더)
- 목적 프로그램을 기억 장소에 적재시키는 기능만 수행
- 로더 중 가장 간단한 프로그램으로 구성되어 있음
- 기억 장소 할당이나 연결을 프로그래머가 직접 지정하며, 위치 변경이 어려움
- Direct Linking Loader(직접 연결 로더)
- 일반적인 기능의 로더, 로더의 기능 4가지를 모두 수행한다.
- Dynamic Loading Loader
- 프로그램을 한꺼번에 적재하는 것이 아니라 실행 시 필요한 일부분만을 적재하는 로더
- Relative Loder(상대 로더)
- 할당, 적재, 연결
- 세그먼트의 상대 번지를 절대 번지로 고친다.
* 시스템 소프트웨어
- 종류에는 로더, 링커, 컴파일러가 있다.
- 하드웨어를 동작시켜 사용자가 작업을 편리하게 수행하도록 하는 프로그램
- 구성
- 제어 프로그램
1. 감시(Supervisor) 프로그램
2. 작업 제어(Job Control) 프로그램
3. 자료 관리(Data Management)
- 처리 프로그램
1. 언어 번역(Language Translate) 프로그램
2. 서비스 프로그램
3. 문제(Problem) 프로그램
* 하이퍼 큐브 필요한 프로세서 수는 2^n이다.
* HRN 방식은 (대기시간+서비스 시간) / 서비스 시간, 높을수록 우선순위가 높다.
* 메크로 프로세서
- 메크로 정의 인식 -> 메크로 정의 저장 -> 메크로 호출 인식
* UNIX 특징
- 시분할 시스템을 위해 설계된 대화식 운영체제, 소스가 공개된 개방형 시스템
- 대부분 C언어로 작성되어 있어 이식성이 높으며 장치, 프로세스 간의 호환성이 높다.
- 크기가 작고 이해하기가 쉬우며, Multi User, Multi Tasking을 지원
- 많은 네트워킹 기능을 제공하므로 통신망(Network) 관리용 운영체제로 적합
- 트리 구조의 파일 시스템으로, 전문적인 프로그램 개발에 용이
- 백그라운드에서 작업을 수행할 수 있으므로 여러 개의 작업을 병행 처리할 수 있다.
- 다양한 유틸리티 프로그램들이 존재하며, 정보와 유틸리티들을 공유하여 편리하게 작업을 수행할 수 있다.
* UNIX 시스템의 구성
1. Kernel(커널)
- UNIX의 가장 핵심적인 부분
- 하드웨어를 보호, 프로그램과 하드웨어 간의 인터페이스 역할
- 프로세스 관리, 기억장치 관리, 파일 관리, 입출력 관리, 프로세스 간 통신, 데이터 전송 및 변환 등 기능 수행
- 컴퓨터 부팅 시 주 기억장치에 적재되어 상주
2. Shell(쉘)
- 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기
- 시스템과 사용자 간의 인터페이스를 담당함
- DOS의 COMMAND.COM과 같은 기능을 수행
- 주기억장치에 상주하지 않고, 명령어가 포함된 파일 형태로 존재하며 보조기억장치에서 교체 처리가 가능함
3. Utility(유틸리티)
- 일반 사용자가 작성한 응용 프로그램을 처리하는 데 사용함
- DOS에서의 외부 명령어에 해당.
* 프로세스
- 일반적으로 프로세서에 의해 처리되는 프로그램을 의미, 프로세스는 필요한 각종 자원을 요구한다.
- 여러 가지 정의
1. 실행 중인 프로그램, PCB를 가진 프로그램, 실기억장치에 저장된 프로그램
2. 프로세서가 할당되는 실체, 프로시저가 활동 중인 것
3. 비동기적 행위를 일으키는 주체, 지정된 결과를 얻기 위한 일련의 계통적 동작
4. 목적 또는 결과에 따라 발생되는 사건들의 과정
5. 프로세서가 할당하는 개체로서 디스패치가 가능한 단위
6. 프로세스가 할당되는 실체
* 유닉스 명령어
1. cat : 파일 내용을 화면에 표시
2. chown : 파일의 소유자를 변경
3. mkfs : 파일 시스템 생성
4. type : 파일의 내용을 표시
5. chmod : 파일 보호 모드를 설정하여 파일의 사용 허가 지정
6. fork : 새로운 프로세스 생성
7 getpid : 자신의 프로세스 아이디를 얻음
8. pipe : 프로세스 간 통신을 위한 경로를 설정
9. exec : 새로운 프로세스를 수행
10. Is : 현재 디렉터리 내의 파일 목록을 확인
11. cp : 파일을 복사
12. & : 백그라운드 처리를 위해 명령어 끝에 입력하는 기호
13. fsck : 파일 시스템을 검사하고 보수함
* Thrashing(스래싱)
- 작업 수행 과정에서 수행하는 기억 장치 접근이 지나치게 페이지 폴트가 발생하여 수행에 소요되는 시간보다
페이지 이동에 소요되는 시간이 더 커지는 현상
- 다중 프로그래밍의 정도가 높아짐에 따라 CPU의 이용률은 어느 특정 시점까지는 높아지지만
더욱 커지면 스래싱이 나타나고 CPU의 이용률은 급격히 감소한다.
- 페이지 부재율이 크면 스래싱이 많이 일어난 것이다.
* Working Set(워킹 셋)
- 프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
- Denning이 제안한 모델 Locality(구역성) 특징을 이용
- 자주 참조되는 워킹 셋을 주기억장치에 상주시킴으로써 페이지 부재 및 페이지 교체 현상을 줄인다.
- 시간이 지남에 따라 바뀐다.
* Semaphore(세마포어)
- 신호기, 깃발을 뜻하며, 각 프로세스에 제어 신호를 전달하여 순서대로 작업을 수행하도록 하는 기법
- 임계 구역의 접근을 제어하는 상호 배제 기법
* 임계 영역(Critical Section)
- 어느 한 시점에서 하나의 프로세스만 자원 또는 데이터를 사용하도록 지정된 공유 자원을 의미,
상호 배제가 필요 없음
- 임계 구역에는 하나의 프로세스만 접근할 수 있다. 해당 프로세스가 자원 반납하면 다른 프로세스가 사용 가능
- 특정 프로세스가 독점할 수 없다.
- 여러 프로세스가 사용해야 하므로 작업은 최대한 빠르게 진행되어야 한다.
- 진입 요청 시 일정 시간 내에 진입을 허락해야 한다.
- 프로세스가 없을 시 잔류 영역에서 임계 구역의 사용을 기다리는 프로세스에게 할당해야지 그 외의 영역은 안됨
* Aging(에이징)
- 프로세스가 자원을 기다리고 있는 시간에 비례하여 우선순위를 부여함으로써 무기한 문제를 방지하는 기법
* Lamport의 빵집 알고리즘
- 빵집에 들어갈 때 번호를 부여하여 순서대로 고객에게 빵을 제공하듯이 각 프로세스에게 번호를 부여함
* Swapping(교환)
- 하나의 프로그램 전체를 주기억장치에 할당하여 사용하다 필요에 따라 다른 프로그램과 교체하는 기법
* File Descripter(파일 디스크립터)
- 파일을 관리하기 위해 필요로 하는 파일에 대한 정보를 갖고 있는 제어블록(파일 제어블록, FCB)이다.
- 보조기억장치 내에 저장되어 있다가 파일이 OPEN 될 때 주기억장치로 옮겨진다.
- 파일마다 독립적으로 존재하며, 시스템에 따라 다른 구조를 가질 수 있다.
- 파일 시스템이 관리하므로 사용자가 직접 참조할 수 없다.
- 파일의 내용, 오류 발생 시 처리방법은 포함되지 않는다.
* Master/Slave (주종 처리기)
- 하나의 프로세서를 주 프로세서로 지정, 나머지는 종 프로세서로 지정하는 비대칭 구조
- 주 프로세서가 고장 나면 전체 시스템이 다운
- 주 프로세서 : 입출력과 연산 담당, 운영체제 수행
- 종 프로세서 : 연산만 수행
* 디스크 스케줄링
- 사용할 데이터가 디스크 상의 여러 곳에 저장되어 있을 경우 데이터를 액세스 하기 위해 디스크 헤드가 움직이는
경로를 결정하는 기법
- 목적 : 처리량 최대화, 평균 반응 시간의 최소화, 응답 시간 편차의 최소화
- 종류
1. FCFS 스케줄링
- 가장 간단, 대기 큐에 먼저 들어온 요청을 먼저 서비스한다.
- 순서대로 서비스하기에 더 높은 우선순위의 요청이 입력되어도 순서가 바뀌지 않는다. 공평성 보장
2. SSTF 스케줄링
- 헤드에서 가까운 거리에 있는 요청을 먼저 서비스하는 기법
- FCFS보다 처리량이 많고, 평균 탐색 시간이 짧다.
- 탐색 패턴이 편중되어 안쪽이나 바깥쪽 트랙이 가운데 트랙보다 서비스를 덜 받는 경향이 있으며
헤드에서 멀리 떨어진 요청은 기아 상태가 발생할 수 있음
- 처리량이 많은 일괄 처리 시스템에 유용함
3. SCAN
- SSTF가 갖는 탐색 시간의 편차를 해소하기 위한 기법
- 탐색 거리가 짧은 순서에 따라 그 방향의 요청을 서비스하고 역방향의 요청을 서비스함
4. C-SCAN
- 항상 바깥쪽에서 안쪽으로 움직이면서 가장 짧은 탐색 거리를 갖는 요청을 서비스
5. N-Step SCAN
- SCAN 기법의 무한 대기 발생 가능성을 제거한 것, 대기 중이던 요청들만 서비스하고, 진행 도중 도착한
요청들은 따로 모아서 다음의 반대 방향 진행 때 서비스
6. Eschenbach(에센바흐)
- 한 번의 회전 시간 동안만 입출력 요구들을 처리하는 기법
- 부하가 매우 큰 항공 예약 시스템을 위해 개발
- 탐색 시간과 회전 지연시간을 최적화하기 위한 최초의 기법
- 헤드는 C-SCAN처럼 움직이며 모든 실린더는 전체 트랙이 한 바퀴 회전할 동안에 서비스를 받음
7. SLTF
- 섹터 큐잉이라고 하며 회전 시간의 최적화를 위해 구현된 기법
- 디스크의 대기 큐에 있는 여러 요청을 섹터 위치에 따라 재 정렬하고, 가장 가까운 섹터를 먼저 서비스
- 헤드의 이동이 거의 없는 고정 헤드 장치인 드럼과 같은 장치에서 사용
8. LOOK
- SCAN 기법을 기초로 사용하되 진행 방향의 마지막 요청을 서비스한 후 바로 역방향으로 진행
* 운영체제의 기능
1. 프로세서, 기억장치, 입출력 장치, 파일 및 정보 등의 자원 관리
2. 자원의 스케줄링 기능 제공
3. 사용자와 시스템 간 편리한 인터페이스 제공
4. 하드웨어와 네트워크 관리 및 제어
5. 데이터 관리 및 데이터, 자원의 공유 기능 제공
6. 시스템의 오류를 검사 및 복구
7. 자원 보호 기능 제공
8. 입출력에 대한 보조 기능을 제공
9. 가상 계산기 기능 제공
10. 사용자들 간의 하드웨어의 공동사용
11. 주변장치 관리
* 자원 보호 기법
- 사용자, 프로세스 등과 같은 주체가, 프로세서, CPU 등과 같은 자원에 불법적으로 접근하는 것을 제어하고
자원의 물리적인 손상을 예방하는 것
- 종류
1. Access Control Matrix(접근 제어 행렬)
- 자원 보호의 일반적인 모델, 객체에 대한 접근 권한을 행렬로써 표시한 기법
2. Global Table(전역 테이블)
- 가장 단순한 구현 방법, 3개의 순서 쌍인 영역, 객체, 접근 권한의 집합을 목록 형태로 구성한 기법
3. Access Control List(접근 제어 리스트)
- 접근 제어 행렬에 있는 각 열, 즉 객체를 중심으로 접근 리스트를 구성한 기법
4. Capability List(권한 리스트)
- 접근 제어 행렬에 있는 각 행, 즉 영역을 중심으로 구성한 것으로 각 사용자에 대한 자격들로 구성,
자격은 객체와 그 객체에 허용된 연산 리스트임
* 가상 기억장치 구현 기법
1. 페이징
- 가상 기억장치에 보관되어 있는 프로그램과 주기억장치의 영역을 동일한 크기로 나눈 후 나눠진 프로그램을
동일하게 나눠진 주기억장치의 영역에 적재시켜 실행하는 기법
- 외부 단편화는 발생하지 않으나 내부 단편화는 발생할 수 있음
- 페이지 맵 테이블이 필요함
2. 세그먼테이션
- 가상 기억장치에 보관되어 있는 프로그램을 다양한 크기의 논리적 단위로 나눈 후 주기억장치에 적재시켜 실행
- 프로그램을 배열이나 함수 같은 논리적인 크기로 나눈 단위를 세그먼트라고 하며 각 세그먼트는 고유한 이름 크기
- 다른 세그먼트에게 할당된 영역을 침범할 수 없으며, 이를 위해 기억장치 보호키가 필요함
- 내부 단편화는 발생하지 않으나 외부 단편화는 발생할 수 있음
- 세그먼트 맵 테이블이 필요함
* 라운드 로빈
- 여러 명의 사용자가 사용하는 시스템에서 컴퓨터가 사용자들의 프로그램을 번갈아 가며 처리해 줌으로써
각 사용자는 독립된 컴퓨터를 사용하는 것처럼 느끼는 것 -> 시분할 시스템이 이를 이용한다.
- FCFS 기법과 같이 먼저 들어온 프로세스가 먼저 할당, 할당된 시간 내에 처리하지 못하면 다음 프로세스에게 넘기고
완료하지 못한 프로세스는 준비상태 큐의 가장 뒤로 배치
- 할당되는 시간이 클 경우 FCFS 기법과 같아지고 할당되는 시간이 작을 경우 문맥 교환 및 오버헤드가 자주 발생
* Process Control Block (PCB)
- 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳으로 각 프로세스가 생성될 때마다 고유의 PCB가 생성
- 부모 프로세스와 자식 프로세스는 각각 다른 PCB를 사용한다.
- 저장되어 있는 정보
1. 프로세스의 현재 상태
2. 포인터
3. 프로세스 고유 식별자
4. 스케줄링 및 프로세스의 우선순위
5. CPU 레지스터 정보
6. 주기억장치 관리 정보
7. 입출력 상태 정보
8. 계정 정보
- 프로세스 생성 정보 없다.
* UNIX 파일 시스템
1. 디렉터리나 주변장치를 파일과 동일하게 취급한다.
2. 파일 생성 및 삭제 기능, 보호 기능을 갖는다.
3. 파일 형식은 일반 파일, 디렉터리 파일, 특수 파일의 3가지 형식을 제공
4. 구조
- 부트 블록 : 부팅 시 필요한 코드 저장
- 슈퍼 블록 : 전체 파일 시스템에 대한 정보를 저장, 사용 가능한 I-node, 사용 가능한 디스크 블록의 개수,
File 시스템마다 각각의 슈퍼 블록을 가지고 있음
- I-node : 각 파일이나 디렉터리에 대한 모든 정보를 저장,
파일의 사용된 횟수, 파일이 최초로 수정된 시간, 파일 경로명은 포함되지 않는다.
- 데이터 블록 : 디렉터리 별로 디렉터리 엔트리와 실제 파일에 대한 데이터가 저장된 블록
* Thread
- 다중 프로그래밍 시스템에서 CPU를 받아서 수행되는 프로그램 단위
- 프로세스나 태스크보다 더 작은 단위
- 한 태스크는 여러 스레드로 나누어 수행될 수 있다.
- 하나의 프로세스 내에서 병행성을 증대시키기 위한 메커니즘, 시스템의 여러 자원을 할당받아 실행하는 단위
- 독립적인 스케줄링의 최소 단위, 동일 프로세스 환경에서는 서로 독립적인 다중 수행이 가능
- 스레드는 독립적인 스케줄링의 최소 단위로서 프로세스 역할을 담당한다.
- 경량 프로세스라고도 한다.
- 사용자 수준 스레드 : 사용자가 만든 라이브러리를 사용하여 운용, 속도는 빠르지만 구현이 어려움
- 커널 수준 스레드 : 운영체제의 커널에 의해 스레드를 운용, 구현은 쉽지만 속도가 느림
- 장점
1. 하나의 프로세스를 여러 개의 스레드로 생성하여 병행성을 증진시킬 수 있다.
2. 하드웨어, 운영체제의 성능과 응용 프로그램의 처리율을 향상할 수 있다.
3. 응답 시간을 단축시킬 수 있다.
4. 실행 환경을 공유시켜 기억 장소 및 자원의 낭비가 줄어든다.
5. 공통적으로 접근 가능한 기억장치를 통해 효율적으로 통신한다.
* 프로세서의 결합도
1. 약결합
- 각 프로세서마다 독립된 메모리를 가진 시스템, 분산 처리 시스템이라고도 함
- 둘 이상의 컴퓨터 시스템을 통신망으로 연결한 시스템
- 각 시스템마다 독자적인 운영체제를 가지고 있음
- 독립적으로 작용할 수도 있고 필요한 경우에는 상호 통신함
- 프로세서 간의 통신은 메시지 전달이나 원격 프로시저 호출을 통해 이루어짐
- 시스템마다 독자적인 운영이 가능하므로 CPU 간의 결합력이 약함
2. 강결합
- 동일 운영체제하에서 여러 개의 프로세서가 하나의 메모리를 공유, 다중 처리 시스템이라고도 함
- 하나의 운영체제가 모든 프로세서와 시스템 하드웨어를 제어함
- 프로세서 간의 통신은 공유 메모리를 통해서 이루어짐
- 하나의 메모리를 사용하므로 CPU 간의 결합력이 강함
- 공유 메모리를 차지하려는 프로세서 간의 경쟁을 최소화해야 함
* 페이지 크기
1. 작을 경우
- 단편화 감소, 시간이 줄어듦
- 수행에 필요한 내용만 주기억장치에 적재, 구역성에 일치할 수 있기에 효율이 높아짐
- 페이지 맵 테이블의 크기가 커지고 매핑 속도가 늦어짐
- 디스크 접근 횟수가 많아져서 전체적인 입출력 시간은 늘어남
- 필요한 내용만 적재함으로써 더 효율적인 워킹 셋 유지
2. 클 경우
- 페이지 맵 테이블의 크기가 작아지고, 매핑 속도가 빨라짐
- 디스크 접근 횟수가 줄어들어 전체적인 입출력의 효율성이 증가함
- 단편화가 증가되고 한 개의 페이지를 주기억장치로 이동하는 시간이 늘어남
- 프로그램 수행에 불필요한 내용까지도 주기억장치에 적재될 수 있음
* 은행원 알고리즘은 교착상태를 회피(Avoidance)
* 교착상태 회복은 종료하거나 중지하거나 선점한다.
* 교착상태의 네 가지 조건
- Mutual Exclusion(상호 배제) : 한 번에 한 개의 프로세스만이 공유 자원을 사용
- Hold and Wait(점유와 대기) : 하나의 자원을 점유하며 다른 프로세스에 할당되어 있는
자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 함.
프로세스가 수행되기 전에 필요한 모든 자원을 할당 시켜 준다.
자원이 점유되지 않은 상태에서만 자원을 요구 하도록 한다.
- Nonpreemption(비선점) : 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없다.
- Circular Wait(환형 대기) : 공유 자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 자신에게 할당된
자원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야 함
* 시분할 시스템에서 Time Slice란 작업시간의 단위를 의미한다. 처리기를 따로 필요로 하지 않는다.
* 투명성의 종류는 문제 내용을 그대로 따라간다.
* 보안 유지 기법
1. 외부 보안
- 시설 보안 : 천재지변이나 외부 침입자로부터의 보안
- 운용 보안 : 전산소 관리 및 경영자들의 정책과 통제에 의해 이루어지는 보안
2. 사용자 인터페이스 보안
- 운영체제가 사용자의 신원을 확인한 후 권한이 있는 사용자에게만 데이터를 사용할 수 있게 함
3. 내부 보안
- 하드웨어나 운영체제의 내장된 보안 기능을 이용하여 시스템의 신뢰성을 유지
* 보안의 요건
1. Confidentiality(기밀성)
2. Integrity(무결성)
3. Avaliability(가용성)
4. Authentication(인증)
5. Non-Repudiation(부인 방지)
* 운영체제 성능 평가 기준
1. Throughput(처리 능력) : 일정 시간 내에 처리하는 양
2. Turn Around Time(반환 시간) : 처리가 완료될 때까지 걸린 시간
3. Avaliability(가용도) : 어느 정도 신속하고 충분히 지원해 줄 수 있는지의 정도
4. Reliability(신뢰도) : 정확하게 해결하는 정도
* 페이지 교체 알고리즘
1. OPT(OPTimal Replacement, 최적 교체)
- 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체, 예측해야 하므로 실현 가능성 희박
2. FIFO
3. LRU(Least Recently Used)
- 최근에 가장 오랫동안 사용하지 않은 페이지를 교체
4. LFU(Lesat Frequently Used)
- 사용 빈도가 가장 적은 페이지를 교체
5. NUR(Not Used Recently)
- 최근에 사용하지 않은 페이지를 교체, 페이지마다 참조 비트와 변형 비트를 둔다
6. SCR(Second Chacne Replacement)
- 가장 오랫동안 주기억장치에 있던 페이지 중 자주 사용되는 페이지의 교체를 방지 FIFO 단점 보완
* 위상에 따른 분산 처리 시스템의 분류
1. Fully Connection(완전 연결형)
- 모든 사이트들과 직접 연결된 구조
- 사이트 수가 n개이면 링크 수는 n(n-1)/2
2. Partially Connection(부분 연결형)
- 일부 사이트들 간에만 직접 연결된 형태, 직접 연결되지 않은 사이트는 연결된 다른 사이트를 통해 통신
3. Tree/Hierachy (트리/계층형)
- 분산 처리 시스템의 가장 대표적인 형태, 각 사이트들이 트리 형태로 연결된 구조
4. Star (성형/ 스타형)
- 모든 사이트가 하나의 중앙 사이트에 직접 연결 그 외의 다른 사이트와는 연결되어 있지 않음
5. Ring(링형/ 환형)
- 시스템 내의 각 사이트가 인접하는 다른 두 사이트와만 연결된 구조
6. Multi Access Bus Connection(다중 접근 버스 연결형)
- 시스템 내의 모든 사이트들이 공유 버스에 연결된 구조
- 사이트의 고장은 다른 사이트 통신에 영향을 주지 않지만 공유 버스의 고장은 영향을 줌
* 모니터(Monitor)
- 동기화를 구현하기 위한 특수 프로그램 기법
- 특정 공유 자원을 프로세스에게 할당하는 데 필요한 데이터와 이 데이터를 처리하는 프로시저로 구성
- 자료 추상화와 정보 은폐 개념을 기초로 하며 공유 자원을 할당하기 위한 병행성 구조로 이루어져 있다.
- 모니터 내의 공유 자원을 사용하려면 프로세스는 반드시 모니터의 진입부를 호출해야 한다.
- 외부의 프로시저는 직접 액세스 할 수 없으며 모니터의 경계에서 상호 배제가 시행된다.
- 한순간에 하나의 프로세스만 진입하여 자원을 사용할 수 있다.
* Fragmentation(단편화)
- 외부 단편화 : 분할된 영역이 할당된 크기보다 작아서 영역으로 들어가지 못하고 남는 영역
- 내부 단편화 : 분할된 영역이 할당된 크기보다 커서 분할된 영역에서 남는 영역
* 분산 처리 시스템
- 목적 : 자원 공유, 연산 속도 향상, 신뢰도 향상, 컴퓨터 통신
- 장점 : 컴퓨터 물리적 위치 몰라도 자원 사용 가능, 시스템의 점진적 확장 가능
- 단점 : 소프트웨어 개발이 어려움, 보안 문제, 설계 복잡
- 시스템 전체의 정책을 결정하는 어떤 통합적인 제어 기능이 필요하다.
- 분산된 자원의 위취 정보가 감추어진다 -> 위치 투명성 보장
* 암호화 기법
- 개인키 암호화 방식(Private Key Encryption) = 비밀키 암호 방식
- 동일한 키로 데이터를 암호화하고 복호화한다.
- 비밀키는 제 3자에게는 노출시키지 않고 데이터베이스 사용 권한이 있는 사용자만 나누어 가진다.
- 대칭 암호 방식 또는 단일키 암호화 기법이라고 한다.
- 장점 : 암호화/복호화 속도 빠름, 알고리즘 단순, 파일 크기 작음
- 단점 : 사용자 증가에 따라 관리해야 할 키의 수가 상대적으로 많아짐
- 공개키 암호 방식(Public Key Encryption)
- 서로 다른 키로 데이터를 암호화하고 복호화한다.
- 데이터를 암호화할 때 사용하는 키는 데이터베이스 사용자에게 공개, 복호화할 때의 키는 관리자가 비밀리에 관리
- 비대칭 암호 방식이라고도 하며 대표적으로 RSA가 있다.
- 장점 : 키의 분배가 용이하고, 관리해야 할 키의 개수가 적음
- 단점 : 암호화/복호화 속도가 느리며, 알고리즘이 복잡하고 파일 크기가 큼
- DES는 대칭형 암호화 기법이며 키 관리가 매우 중요하다.
- RSA는 공개키/비밀키 암호화 기법이다.
- 디지털 서명은 비대칭형 암호 알고리즘을 사용한다.
- FEAL는 고속 동작이 가능하도록 설계되었으며 DES와 유사한 구조를 가진다.
- Public Key System
* MFQ(다단계 피드백 큐)
- Adaptive Mechanism(적응 기법)의 개념을 적용
- 마지막 단계에 RR을 사용
- FIFO와 RR을 혼합
* 인터럽트의 종류
- 외부 인터럽트
1. 전원 이상 인터럽트
2. 기계 착오 인터럽트
3. 외부 신호 인터럽트
4. 입출력 인터럽트
- 내부 인터럽트 : 잘못된 명령이나 데이터를 사용할 때 발생 Trap이라고도 부름
1. 프로그램 검사 인터럽트
- 0으로 나누기
- Overflow
- 명령어 잘못 사용
- 소프트웨어 인터럽트 : 명령의 요청에 의해 발생, 대표적인 형태로 감시 프로그램을 호출
1. SVC 인터럽트
- 사용자가 SVC명령을 써서 의도적으로 호출한 경우
- 복잡한 입출력 처리를 해야 하는 경우
* 기억장치 관리 전략
1. Fetch(반입) : 보조기억장치에 보관 중인 프로그램이나 데이터를 언제 주기억장치로 적재할 것인지를 결정
2. Placement(배치) : 새로 반입되는 프로그램이나 데이터를 주기억장치 어디에 위치시킬 것인지를 결정
3. Replacement(교체) : 주기억장치의 모든 영역이 이미 사용 중인 상태일 때 어느 영역을 교체할 것인지 결정
* Context Switching(문맥 교환)
- 다중 프로그래밍 시스템에서 OS에 의해 CPU가 할당되는 프로세스를 변경하기 위한 목적
- 현재 CPU를 사용하여 실행되고 있는 프로세스의 상태 정보를 저장하고 제어 권한을 ISR에게 넘기는 작업
* ISAM(Indexed Sequential Access-Method)
- 트랙(Track) : 각 실린더마다 하나씩 만들어짐, 각 트랙에 기록된 데이터의 레코드 값 중 최대 키 값과 주소 정보 기록
- 실린더(Cylinder) : 각 파일마다 하나씩 만들어지며 각 트랙 색인의 최대 키 값들로 구성된 영역
- 마스터(Master) : 실린더 색인이 많을 경우 그것을 일정한 크기의 블록으로 구성하고, 해당 레코드가 어느 실린더
색인 영역에 있는지 나타내는 영역
* Mapping(맵핑)
- Virtual Memory에서 Main Memory로 페이지를 옮겨 넣을 때 주소를 조정해 주어야 할 때 사용
* 스풀링 & 버퍼링
- 두 장치 간의 속도 차이를 해결하기 위해 사용되는 기법
- 버퍼링은 주기억장치의 일부를 사용
- 스풀링은 디스크의 일부를 사용
* 프로세스 상태의 종류
- Ready, Submit(제출), Hold(접수), Run(실행), Wait(대기), Exit, Terminated(종료), Block(중단)
* 프로세스 상태 전이
- Spooling, Wake up, Dispatch
* 시스템 호출
- UNIX 시스템에서 사용자와 운영체제 서비스를 연결해주는 인터페이스
- 상위 수준의 소프트웨어가 커널의 기능을 이용할 수 있도록 지원해준다.
* 분산처리 시스템의 프로레스 모델에 따른 경우
- 클라이언트 - 서버 모델
- 프로세서 풀 모델
- 혼합 모델
* 병행 프로세스들의 상호 배제를 위한 요구 조건
1. 상호 배제 조건 : 두 개 이상의 프로세스들이 동시에 임계 영역에 있어서는 안 된다.
2. 진행 조건 : 어떤 프로세스도 임계 구역으로 들어가는 것이 무한정 연기되어선 안된다.
3. 한계 대기 조건 : 임계 구역 바깥에 있는 프로세스가 다른 프로세스의 임계구역 진입을 막아선 안된다.
* 비선점 스케쥴링
- 모든 프로세스들에 대한 요구를 공정히 처리
- 응답 시간의 예측이 용이
- CPU의 사용시간이 짧은 프로세스들이 사용시간이 긴 프로세스들로 인하여 오래 기다리는 경우가 발생
- FIFO, SJF, 우선순위, HRN, 기한부
* 선점 스케쥴링(Preemptive Scheduling)
- 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있음
- 오버헤드가 많음
- RR, SRT, 선점 우선순위, 다단계 큐, 다단계 피드백 큐
* NUR 교체 순서 ( JK플립플롭 생각)
참조 비트 | 변형 비트 | 교체 순서 |
0 | 0 | 1 |
0 | 1 | 2 |
1 | 0 | 3 |
1 | 1 | 4 |
* SJF 스케쥴링
- 도착시간을 보고 처음에 도착한 스케쥴링부터 시작하고 그다음엔 실행시간이 짧은 순서로 실행된다.
- 도착시간이 없다면 그냥 실행시간이 짧은 순서
- 각 프로세스의 프로세서 요구 시간을 미리 예측하기 어렵다.
* Real Time Processing(실시간 처리 시스템)
- 한정된 시간 내 자료를 분석하여 정해진 시간에 반드시 작업을 처리해야 하는 시스템
* 직접 파일
- 해싱 등의 사상 함수를 사용하여 레코드 키에 의한 주소 계산을 통해 레코드를 접근할 수 있도록 구성한 파일
* 데이터 관리 프로그램
- 주기억장치와 보조기억장치 사이의 자료 전송, 파일의 조작 및 처리, 입출력 자료와 프로그램 간의 논리적 연결 등
시스템에서 취급하는 파일과 데이터를 표준적인 방법으로 처리할 수 있도록 관리한다.
* Multi-Processing System
- 프로그램을 수행할 수 있는 CPU를 두 개 이상 두고 각각 분담하여 처리하는 방식
* Site(사이트) 간 Migration(이주)의 종류
- Data Migration
- Computation(연산) Migration
- Pocess Migration
'정보처리기사' 카테고리의 다른 글
정보처리기사 필기 합격 후기 (0) | 2019.09.01 |
---|---|
데이터베이스 정리 (0) | 2019.07.31 |
전자계산기 구조 정리 (4) | 2019.07.31 |
소프트웨어 공학 정리 (2) | 2019.07.31 |
데이터 통신 정리 (0) | 2019.07.31 |