School Lecture Study 48

5. Process and Thread

중앙대학교 3-2 리눅스 응용 설계 (손용석 교수님) 과목 정리입니다. From a Program to a Process Program sequence of instructions + data + metadata for program loading and execution Process in Linux Process means “running program” system에서 현재 실행되고 있는 program whenever program / command is executed / issued in linux, it creates / starts a new process pwd 가 실행되면 process가 시작된다. Linux는 5자리 ID 번호로 process를 기록 → PID (process ID) s..

4-2. Kernel module

중앙대학교 3-2 리눅스 응용 설계 (손용석 교수님) 과목 정리입니다. What is Kernel modules in Linux module은 필요에 따라 kernel에 load되거나 unload 될 수 있는 code 조각 system을 reboot할 필요 없이 kernel의 functionality를 확장시킬 수 있다. module의 하나인 device driver는 kernel이 system에 연결되어 있는 hardware에 접근할 수 있도록 한다. module 없으면, monolithic kernel을 구축하고 새로운 기능을 kernel image에 직접 추가해야 한다. 게다가 larger kernel을 갖고 있다면, 새로운 기능이 추가될 때마다 매번 kernel을 rebuild, reboot하는 ..

4-1. Design Principle of Linux Kernel

중앙대학교 3-2 리눅스 응용 설계 (손용석 교수님) 과목 정리입니다. Monolithic Kernel vs . Microkernel kernel이 OS의 가장 중요한 부분 Monolithic kernel OS architecture device drivers, file system, IPC 같은 대부분의 component가 kernel space에 포함 실행 가능한 module을 runtime에 dynamically load & unload 가능 Microkernel software의 near-minimum amount OS를 구현하기 위한 mechanism을 제공 mechanism은 address space management, thread management, inter-process communi..

3-2. System calls

중앙대학교 3-2 리눅스 응용 설계 (손용석 교수님) 과목 정리입니다. Processor Modes The OS must restrict what a user process can do What instructions can execute What portions of the address space are accessible Supervisor mode (Kernel Mode) instruction set의 어떤 instruction이든 실행 가능 processor 중지, mode bit 변경, I/O 초기화 system의 어떤 memory location이든 접근 가능 OS address space의 code & data User Mode Restricted capabilities privileged..

10. 슬라이딩 윈도우 구현

슬라이딩 윈도우 작동 과정 순서 번호 공간 (Sequence Number Space) 순서번호는 오류제어에서 필수 → 헤더에 저장해서 보낸다. 프레임 헤더의 필드는 한정된 공간 (많이 사용하면 overhead가 증가한다.) → 결국 순서 번호는 순환되며 사용된다. 순서 번호 공간: 가능한 순서 번호 구간 Ex. 4-bit 필드 ⇒ [0..15] 순서 번호 필드는 얼마로 잡아야 안전할까? 주어진 순서 번호 공간에서 최대 outstanding 프레임, 즉 송신자 기준 WindowSize는 얼마까지 늘릴 수 있을까? 순서 번호 공간은 현재 전송중인 프레임의 수보다 커야 한다. 어떤 프레임이 오류 및 재전송의 대상이 될 지 모르므로, outstanding frame 각각은 서로 다른 SeqNum을 갖고 있어야 ..

9. 슬라이딩 윈도우 (Sliding-Window)

슬라이딩 윈도우 (Sliding Window) 이디어: 송신자가 ACK를 받기 전에 여러 개의 프레임을 전송할 수 있도록 한다 → 파이프가 꽉 차게 된다. ACK를 받지 않은 상태에서 보내지는 프레임 (outstanding frame)이 복수개로 늘어난다. 그 수는 window size에 맞게 제한된다. outstanding frame: 현재 전송이 진행중인 frame = 언제든지 오류 복구가 필요한 frame 모두 오류 제어 대상이며, 순서 번호가 필요하다. (누가 ACK를 보냈는지 구분하기 위해) stop&wait는 sliding window의 window size가 1인 경우이다. 각각의 프레임에 대해서는 ARQ, 즉 Ack / timeout & 재전송을 수행한다. 효율 높은 오류 제어가 가능하다...

8. 신뢰성 있는 전송 (Stop-and-Wait)

개요 오류에 의해 변질된 프레임의 복구 오류 수정 코드 (Error Correction Codes: ECC) 순방향 수정 (Forward Error Correction: FEC) → 수신자가 수정하는 코드 자동 반복 요청 (Automatic Repeat reQuest: ARQ) : 재전송 ACK와 타임아웃 (Acknowledgements and Timeouts) 역방향 수정 (Backward Error Correction) 오류 중에는 프레임 자체가 성립이 안 되는 framing error 도 존재한다. 이 경우에는 수신 쪽이 frame 수신 여부를 인식하지 못하는 frame loss이다. 오류 수정 코드 (Error Correcting Codes) Forward Error Correction (FEC)..

7. 오류 검출

오류검출 데이터 링크 층의 중요한 기능이다. 오류검출까지는 하드웨어가 처리할 수 있다. 오류 복구/처리/재전송은 소프트웨어가 처리한다. 오류 검출 코드 (Error Detecting Code) : EDC 데이터 영역 안에 오류가 있는지 없는지 알아내기 위한 부가 데이터 (overhead) 수신자가 알아내야 하므로 비용 없이는 할 수 없는 작업이다. Ex. parity (맨 끝의 parity bit) 크기 면에서 EDC는 data보다 작아야 한다. 오류가 없는 경우 EDC는 단순 overhead가 되기 때문에 작아야 의미가 있다. 효율 면에서 오류 검출율이 높아야 한다. EDC가 너무 작으면 검출율이 낮아진다. 비용 면에서 f() 연산에서 시간이 적게 소모되어야 한다. 고속 통신에서 병목 지점이 될 수도 ..

6. 프레이밍 (Framing)

프레이밍(Framing) : 개요 패킷 네트워크에서는 데이터를 끝없이 보낼 수는 없다. 각 데이터를 구별할 줄 알아야 하기 때문 문제점 bit 들의 연속을 하나의 묶음 (프레임 : frame)으로 자르는 것 수신 쪽이 프레임을 인식할 수 있도록 봉투를 씌워 묶는 것 프레임의 처음과 끝을 인식 전형적으로 네트워크 어댑터 (NIC)에서 구현된다. 어댑터는 호스트 메모리로부터 프레임 (데이터 + 헤더 일부분)을 메모리에서 가져온다. 바이트 중심 프로토콜 (Byte-Oriented Protocols) 보초 방법 (Sentinel Approach) BISYNC header와 data의 경계에 보조문자를 삽입한다. header는 가변 길이를 갖는다. IMP-IMP, PPP 문제점: 프레임의 데이터 부분에서 ETX ..