11 . 비선점형 스케줄링 HRN의 우선순위 계산식
A : (대기시간 + 서비스시간) / 서비스시간
- 비선점(Non-Preemptive) 스케줄링 : 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
- FCFS, SJF, 우선순위, HRN, 기한부
- FCFS, SJF, 우선순위, HRN, 기한부
FCFS : 빨리 온 애들부터 순서대로 하자!
SJF : 빨리 처리할 수 있는 애들부터 하자!
HRN : 우선순위가 높은 애들부터 하자!
FCFS
- First Come First Service
- FIFO라고도 불린다.
- 준비상태 큐에 도착한 순서에 따라 차례로 CPU 할당
- 장점 : 공평성 유지
- 단점 : 중요하지 않은 작업을 기다리는 경우 발생
SJF
- Shortest Job First
- 실행시간이 가장 짧은 프로세스부터 CPU 할당
- 가장 적은 평균 대기시간
- 실행시간이 긴 프로세스에 불리!
HRN
- Hightest Response-ratio Next
- SJF의 단점을 보완하기 위한 기법
- 대기시간과 실행시간로 계산된 우선순위 이용
- 대기시간이 긴 프로세스일 경우 우선순위 결과값이 높다.
- 선점(Preemptive) 스케줄링 : 하나의 프로세스가 CPU를 할당받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법
- Round Robin, SRT, 선점 우선순위, MLQ(다단계 큐), MFQ(다단계 피드백 큐)
RR
- Round Robin
- 시분할 시스템을 위해 고안
- FCFS의 선점형태 변형
FCFS와의 비교
공통점 : 준비상태 큐에 먼저 들어온 프로세스가 먼저 CPU 할당
FCFS : 뒤에 뭐가 오든 일단 들어온 것부터 끝내자.
RR : 할당된 시간만 실행, 완료되지 않으면 다음 프로세스에 CPU 넘기고 다시 줄 서!
할당 시간 大 : FCFS와 다를 바가 없다.
할당 시간 小 : 오버헤드 자주 발생
SRT
- Shortest Remaining Time
- SJF의 선점형태 변형
SJF와의 비교
공통점 : 실행시간을 비교해서 가장 짧은 프로세스부터 처리
SJF : 일단 하던 건 끝내고 이후에 가장 짧은 프로세스를 건드리자!
SRT : 하던 건 알 바 아님. 새로운 들어온 프로세스가 더 빨리 끝나면 뺏어감. Ex. 30초 짜리 프로세스 처리해서 10초 남았는데 3초짜리 프로세스 들어오면 3초짜리부터 처리
MLQ
- 다단계 큐 스케줄링(Multi Level Queue)
동작 방식
우선순위마다 준비상태 큐 형성
가장 높은 우선순위 큐의 프로세스에 CPU 할당
우선순위가 낮은 큐에서 작업 실행 중에도 상위 단계 큐에 프로세스 도착 시 CPU 뺏어감
특징
각 Queue는 RR, CSRF 등 독자적 스케줄링 가능
Queue들 간의 프로세스 이동 불가 : 스케줄링 부담은 적지만 유연성이 떨어짐
우선순위가 낮은 프로세스는 기아현상 발생 가능
기아현상(Starvation) : 오랫동안 CPU 할당을 기다리는 것
MFQ
- 다단계 피드백 큐 스케줄링(MultiLevel Feedback Queue)
- 다단계 큐 + 동적인 프로세스 우선 순위 변화 적용
동작 방식
프로세스 생성 시 가장 높은 우선 순위 준비 큐에 등록
등록된 프로세스는 FCFS 순서로 CPU를 할당받아 실행
해당 큐의 CPU 할당량(Time Quantum)이 끝나면 하위 준비상태 큐에 등록
특징
큐 사이의 프로세스 이동 가능
가장 하위 큐는 FCFS 스케줄링
Aging 기법으로 기아현상 예방
Aging 기법 : 최하위 큐에서 너무 오래 대기 시 다시 상위 큐로 이동
MLQ와 MFQ의 비교
차이점
MLQ
프로세스마다 우선순위 확정
프로세스가 Queue마다 이동 불가
MFQ
프로세스의 우선순위가 CPU 할당량에 따라 변경
프로세스가 Queue마다 이동 가능
장단점
MLQ
장점 : 단순 → 스케줄링 부담 X
단점 : 낮은 유연성
MFQ
단점 : 복잡 → 스케줄링 부담 O
장점 : 높은 유연성
특징
MLQ : 하위 단계 큐에서 기아현상 발생 가능
MFQ : Aging 기법을 이용한 기아 현상 예방
12. 트랜잭션 주요 특성 4가지
ACID
원자성(Atomicity)
- 트랜잭션의 가장 기본적인 특성으로 트랜잭션 내의 연산은 반드시 모두 수행되어야 하며 그렇지 않은 경우 모두 수행되지 않아야 한다.
- 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장
- Commit과 Rollback 명령어에 의해 보장 받는다.
ex) 예를 들어, 자금 이체 과정에서 보내는 쪽에서 돈을 빼 오는 작업만 성공하고 받는 쪽에 돈을 넣는 작업을 실패해서는 안된다. 원자성은 이와 같이 중간 단계까지 실행되고 실패하는 일이 없도록 하는 것이다.
일관성(Consistency)
- 트랜잭션이 정상적으로 완료된 후 언제나 일관성 있는 데이터베이스 상태가 되어야 하며, 결과에 모순이 생겨서는 안된다.
- 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미한다.
- 무결성 제약이 모든 계좌는 잔고가 있어야 한다면 이를 위반하는 트랜잭션은 중단된다.
격리성(Isolation)
- 하나의 트랜잭션이 수행 중에는 다른 트랜잭션이 접근할 수 없으며 각각의 트랜잭션은 독립적이어야 한다. 따라서 독립성이라고도 한다.
- 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장
- 트랜잭션 밖에 있는 어떤 연산도 중간 단계의 데이터를 볼 수 없음
영속성(Durability)
- 트랜잭션이 성공적으로 완료된 후 결과는 지속적으로 유지되어야 한다. 따라서 지속성이라고도 한다.
- 성공적으로 수행된 트랜잭션은 영원히 반영됨
13. OSI 7계층
A : 물리 계층
응 표 세 전 네 데 물
응용 : 응용 서비스 연결, 정보 교환 등 | HTTP
표현 : 암호화/복호화 | JPEG
세션 : 연결 접속 및 동기 제어 | RPC
전송 : 데이터 분할/재조립, 혼잡/흐름 제어 | TCP / 단위 : segment
네트워크 : 노드 간 데이터 전송, 최적 경로 설정(라우팅) | IP / 단위 : packet
데이터 : 데이터 전송, 오류/흐름 제어 | HDLD / 단위 : frame
물리 : 비트 정보를 전기적 신호로 변환 | RC-232C
14. 릴리즈 노트
A : 헤더
15. 데이터 마이닝
A : 수많은 데이터에서 가치있는 유용한 정보를 찾아내는 것
16. 암호화 알고리즘(MD4)
A : MD5
https://www.youtube.com/watch?v=tHYhmiH6jpE
대칭 키 암호 방식
- 암호화 알고리즘의 한 종류로, 암호화와 복호화에 같은 암호키를 쓰는 알고리즘
- 대칭 키는 블록 암호화와 스트림 암호화 알고리즘으로 나뉨
- ex) DES, AES, SEED, ARIA 128/192/256
💡 DES (Data Encryption Standard - 56Bit의 키를 이용, 64Bit의 평문 블록을 64Bit의 암호문 블록으로 만드는 블록 암호 방식의 매국 표준 암호화 알고리즘.
💡 SEED - KISA, ETRI에서 개발하고 TTA에서 인증한 안전성, 신뢰성이 우수한 고속 블록 단위의 128Bit 대칭 키 암호화 알고리즘.
💡 AES (Advanced Encryption Standard) - 고급 암호화 표준이라고도 불리며, DES를 대체한 암호 알고리즘으로 암호화와 복호화 과정에서 동일한 키를 사용하는 대칭 키 암호화 알고리즘.
비대칭 키 암호 방식
- 공개 키를 이용해 암호화하고 공개 키에 해당하는 개인 키를 이용해 복호화하는 암호 방식
- 비대칭 키 암호 방식에서는 공개 키와 개인 키가 존재하며, 공개 키는 누구나 알 수 있지만 그에 대응하는 개인 키는 키의 소유자만이 알 수 있어야 한다.
- 비밀 키는 키의 소유자만이 알 수 있어야 한다. 공개 키는 보안 타협 없이 공개적으로 배포가 가능하다.
- 비대칭 키 암호를 구성하는 알고리즘은 대칭 키 암호 방식과 비교하여 공개 키 암호 방식이라고 부른다.
- ex) RSA, ECC, ECDSA, 디피-헬만
💡 RSA (Rivest Shamir Adieman)
- 로널드 다이베스트, 아디 샤미르, 레너드 애들먼의 앞글자를 딴 비대칭 키 암호화 알고리즘.
현재 비대칭 키 암호 방식 중에서 가장 널리 쓰이고 있는 방식으로서, 소인수 분해의 어려움을 이용한 방식이다.
💡 디피-헬만 (Diffe-Hellman)
- 암호 키를 교환하는 방법으로서 두 사람이 암호화되지 않은 통신망을 통해 공통의 비밀 키를 공유할 수 있도록 하는 방식이다.
해시 방식
- 단방향 알고리즘으로서 임의의 데이터를 고정된 길이의 데이터로 매핑하는 함수
- 해시 함수의 결과로 원본 데이터를 유추하기 어려운 것을 이용
- 연산에 걸리는 시간이 빠른 것이 장점이지만, 동일한 결과를 갖는 값이 발생하는 해시 충돌 문제가 발생 가능한 단점 존재.
- ex) SHA, MD5, HAS-160
💡 SHA (Secure Hash Algorithm)
- 미국 국가안보국이 1993년에 처음으로 설계했으며, 미국 국가 표준으로 지정한 해시 암호화 알고리즘이다. 안전한 해시 암호화 알고리즘으로 SHA-224, SHA-256, SHA-384, SHA-512를 통칭해 SHA-2라고 한다.
💡 MD5 (Massage-Digest Algorithm 5)
- RFC 1321로 지정되어 있으며, 로널드 다이베스트가 예전에 쓰이던 MD4를 대체하기 위해 고안한 128Bit 해시 암호화 알고리즘이다.
17. LoC
A : 30000 / (300*5) = 20
하향식 비용 산정 기법
전문가 감정 기법, 델파이 기법
상향식 비용 산정 기법
LOC 기법, 개발 단계별 인원수 기법
수학적 산정 기법
COCOMO 모형
조직형(Organic Mode) - 5만 라인 이하
반분리형(Semi-Detached Mode) - 30만 라인 이하
내장형(Embedded Mode) - 30만 라인 이상
Putnam 모형
노력 분포 산정
기능 점수(Function Point) 모형
요인별 가중치를 합산하여 총 기능 점수 산출
18. C
#include
void align(int a[ ]) {
int temp;
for (int i = 0; i < 4; i++) {
for (int j=0; j < 4 - i; j++) {
if (a[j]> a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
main( ) {
int a[ ] = { 85, 75, 50, 100, 95 };
align(a);
for (int i = 0; i < 5; i++) printf("%d ", a[i]);
}
A : 50 75 85 95 100
19. JAVA
public class Test {
static int[ ] arr( ) {
int a[ ] = new int[4];
int b = a.length;
for(int i = 0; i < b; i++)
a[i] = i;
return a;
}
public static void main(String[ ] args) {
int a[ ] = arr( );
for(int i = 0; i < a.length; i++)
System.out.print(a[i] + " ");
}
}
A : 0 1 2 3
20. C
#include
main( ) {
int c = 1;
switch (3) {
case 1: c += 3;
case 2: c++;
case 3: c = 0;
case 4: c += 3;
case 5: c -= 10;
default: c--;
}
printf("%d", c);
}
A : -8
'자격증 > 정처기' 카테고리의 다른 글
[정처기 실기] 기출 - 2021년 1회 11~20번 (0) | 2024.04.20 |
---|---|
[정처기 실기] 기출 - 2021년 1회 1~10번 (0) | 2024.04.20 |
[정처기 실기] 기출 - 2020년 1회 1~10번 (0) | 2024.04.10 |