스케줄러는 CPU 자원을 프로세스들에게 분배하는 OS의 중요한 일부분이다.
2007년 발표 된 리눅스 커널의 스케줄러인 CFS(Completely Fiar Scheduler)는
RSDL(Rotating Staircase Deadline) 스케줄러를 기초로 한 RB-트리(Red-Black Tree) 데이터 구조를 사용하는 O(logN) 성능을 가지는 스케줄러이다.
CFS는 시간단위로 나노초를 사용한다.
공개 키 암호 방식(公開 - 暗號 方式, public-key cryptography)은 암호 방식의 한 종류로
사전에 비밀 키를 나눠가지지 않은 사용자들이 안전하게 통신할 수 있도록 한다.
공개 키 암호 방식에서는 공개 키 와 비밀 키 가 존재하며
공개 키는 누구나 알 수 있지만 그에 대응하는 비밀 키는 키의 소유자만이 알 수 있어야 한다.
공개 키 암호를 구성하는 알고리즘은 대칭 키 암호 방식과 비교하여 비대칭 암호(非對稱暗號)라고 부르기도 한다.
프로그램이 실행되기 위해서는
먼저 프로그램이 메모리에 로드(load)되어야 한다.
또한 프로그램에서 사용되는 변수들을 저장할 메모리도 필요하다.
따라서 컴퓨터의 운영체제는
프로그램의 실행을 위해
다양한 메모리 공간을 제공하고 있다.
프로그램이 운영체제로부터 할당받는 대표적인 메모리 공간(RAM)은 다음과 같다.
HTTP는 Connectionless 방식으로 연결을 매번 끊고 새로 생성하는 구조이다.
이는 Network 비용 측면에서 최초 연결을 하기 위해 많은 비용을 소비하는 구조이다.
캐시 일관성(영어: Cache Coherence)이란
공유 메모리 시스템에서 각 클라이언트(혹은 프로세서)가 가진 로컬 캐시 간의 일관성을 의미한다.
각 클라이언트가 자신 만의 로컬 캐시를 가지고
다른 여러 클라이언트와 메모리를 공유하고 있을 때
캐시의 갱신으로 인한 데이터 불일치 문제가 발생한다.
아스키코드란
ASCII(American Standard Code for Information Interchange)의 줄임말이다.
이름에서부터 알 수 있듯이
American을 위한 문자 집합이고
이는 영문 키보드로 입력할 수 있는
모든 기호가 할당되어 있는 부호 체계이다.
그래서 000(0x00)부터 127(0x7F)까지 총 128개의 부호가 사용된다.
Q. 왜 128개만 사용하는 걸까?
아스키코드는 1바이트를 사용한다.
그렇기 때문에 2^8 = 256개를 사용할 수 있지만
2^7 = 128개만 사용한다.
그 이유는 나머지 1bit를 통신 에러 검출을 위해 사용하기 때문이다.
## Parity Bit
7개의 비트 중
1의 개수가 홀수면 1
1의 개수가 짝수면 0으로 하는
Parity Bit를 붙여
전송 도중 변질된 것을 검출해낸다.