Classical Encryption Techniques [ Plaintext & Ciphertext ] · Plaintext : 암호화되기 전의 원래 텍스트. 평문. · Ciphertext : 평문을 암호화하여 얻은 암호문. [ Secure ] · Unconditionally Secure : 수학과 관련없는 통계적인 암호화 방식. · Computationally Secure : 수학적으로 풀어낼 수 있으나 계산량 측면에서 현실적으로 불가능한 암호화 방식. [ Classical Encryption ] : 고전적인 암호화 방식으로, 대부분 암호화와 복호화에 동일한 Key를 이용하는 Symmetric Cipher를 이용. · Substitution Cipher - Caesar Cipher : 알파벳 테이블을..
Basic Number Theory [ Euclidean Algorithm ] : GCD(Greatest Common Divisor; 최대공약수)를 구하는 알고리즘. #include // a > b라고 가정 int gcd(int a, int b) { while(b != 0) { int r = a % b; a = b; b = r; } return a; } [ Modular Arithmetic ] · a ≡ b (mod m) : a와 b가 m에 의해 나누어졌을 때 나머지가 동일. · (a ± b) mod m = (a mod m ± b mod m) mod m · (a * b) mod m = (a mod m * b mod m) mod m · 나눗셈의 경우 Modular Inverse를 이용하여 계산하며, 이를 ..
Scheduling [ Non-preemption & Preemption ] · Non-preemption : Process가 수행 중일 시 Priority가 높은 것이 들어와도 끝날 때 까지 Context Switch를 하지 않는 방식. (System Call) : ~Linux 2.4 버전까지는 이러한 방식으로 Kernel이 구성되었다. · Preemption : Process가 수행 중일 시 Priority가 높은 것이 들어오면 중간에 Context Switch를 하는 방식. (System Call) : Linux 2.6 버전부터 이러한 방식으로 Kernel이 구성되었다. : Real-Time 응용을 위해 도입. [ Dispatcher ] : Schedule..
Thread [ Thread ] : Process 내에서 실행되는 작은 실행 단위. : 공유할 수 있는 메모리와 자원을 공유. → Heap, Data, Code는 공유하며, Stack과 Register는 별도. : 자원을 공유하므로 IPC가 매우 간단해짐. : fork 대신 pthread_create를 이용. → pthread_create(&tid, &attr, argv[i]) : 각 Thread는 Concurrent하게 수행됨. : Process 간 Context Switch에 비해 Context Switch에 대한 Overhead가 매우 적음. : 다른 작업을 처리하는 중에도 작업 실행이 가능하므로 응답성(Responsiveness)이 향상된다. : Multi-Processor Architecture..
Process [ Process Elements ] · Process Address Space : 프로세스는 실행되고 있는 프로그램이므로, Stack과 Heap 등의 공간이 필요. · PCB (Process Control Block) : 프로세스의 Context를 저장하기 위한 자료 구조. · Process State : 프로세스의 상태. Scheduler에 의해 관리됨. - new : 프로세스 초기 생성 상태. - running : 실행 중인 Process. 각 코어에 최대 하나일 수 밖에 없음. - waiting : running state로 갈 수 없는, 모종의 이유로 인해 중단된 상태. ex) I/O, Sleep System Call, Event Wait (Signal) 등 - ready : 실행..