22년도 1학기를 마치며

신현철·2022년 6월 20일
1

이번 학기를 마치며 공부했던 내용을 간략하게 적어보려한다.

운영체제

Introduction

하드웨어와 소프트웨어 간의 원활한 동작을 위한 운영체제의 역할을 주로 배웠다.
1장에서는 컴퓨터 시스템 구조, OS 구조, OS 동작 등을 개괄적으로 배웠다. 인터럽트 핸들링, DMA구조, 버스 시스템, 스토리지 계층 구조, 캐시 구조, 유저/커널 모드, 프로세스 관리 등등이다.

Process

이후 중요했던 내용은 프로세스다. Process state로 new, running, waiting, ready, terminated가 있었고, 이 상태정보는 PCB에 포함된다. Context switching도 배웠다. 또 long-term/medium/short-term scheduler도 기억해야 할 것 같다(+ cpu bound, i/o bound). 프로세스간 통신과 그에 따른 버퍼의 필요성과 버퍼의 한계점도 기본적인 지식일 것으로 생각한다.

Thread

프로세스와 더불어 쓰레드도 매우 중요하다. 멀티 쓰레드와 멀티 프로레스의 차이점은 멀티 쓰레드 간에는 code,data,os resource를 공유한다는 것이다. 또한 이 공유한다는 점에서 오버헤드도 적게 발생한다. 유저 쓰레드와 커널 쓰레드 간의 맵핑 모델, 쓰레드 생성 메소드, 쓰레드 종료 메소드, thread pool 등을 기억해야 하겠다.

Scheduling

CPU 스케줄링 방식으로는 FCFS, SJF, RR, 멀티레벨 큐, 멀티레벨 피드백 큐 등을 배웠다.

Process Synchronize

프로세스 동기화 방식으로는 Peterson's solution, Bakery algorithm, TestAndSet, Swap, Semaphore 등을 배웠다.

Deadlock

Deadlock 파트에서는 prevention or avoidance / detect and recovery / ignore 방식 세가지를 배웠다. Prevention은 mutex, hold and wait, no preemption, circular wait 네 가지를 모두 만족하는 일이 없게하는 것이다. Avoidance는 사전에 자원 정보들을 활용해 데드락이 일어나는지 시뮬레이션 해보고 프로세스를 진행하는 느낌이다.

Memory Management

메모리 관리 파트에서는 logical physical address space의 차이를 우선 배웠다. 추가적으로 contiguous하게 메모리는 할당할 경우 생기는 fragmentation이라는 문제점이 나왔다. Fragmentation은 external과 internal이 있는데, 각각 해결 방법이 paging과 segmentation이다. Paging은 고정 사이즈의 frame으로 메모리를 쪼개서 맵핑해서 쓰는 방식이다. Paging은 TLB 방식을 많이 사용한다. Page table 구조로는 Hierarchical, Hashed, Inverted가 있고, Hashed와 inverted를 혼합해서 쓰는게 효율적이다. Segmentation은 user 관점에서의 메모리 구조이고, logical한 unit이다. Segmentation+Paging은 MULTICS 방식이다.


데이터통신

Physical layer와 Data link layer를 중점적으로 배웠다.

Physical layer topology

Physical layer에서는 physical topology를 먼저 배웠다. Mesh, Star, Ring, Bus 등의 방식이 있다.

Multiplexing

Multiplexing 방식 : FDM, WDM, TDM 중 TDM이 가장 중요함. TDM은 synchronous 방식과 asynchronous 방식으로 나뉜다. STDM은 t1, e1 같은 라인이다.

Switching

멀티플렉싱 기술이 여러 디바이스가 한 회선을 나눠쓰는 방법이라면, switching은 여려 디바이스가 1대1 통신을 하는 기술이다. Physical layer의 switching 방식은 크게 Circuit-switched networks, Packet-switched networks, Message-switched networks로 나뉘고, Packet switching 방식은 datagram과 virtual-circuit 방식으로 나뉜다.

Circuit switching은 단순히 STDM 방식이다. Setup phase가 존재한다.

Message switching은 buffer를 사용하는 ATDM 방식이다. Incoming buffer에 data 채우고, table을 lookup하고, 나가는 interface 결정한뒤에 outgoing buffer로 옮겨서 전송한다.

Datagram switching은 message switching과 똑같지만, data를 packet 단위로 쪼개서 전송한다.

Virtual-circuit 방식은 ATDM 전송라인에 circuit switching의 slot처럼 id를 부여해서 전송한다. 따라서 setup phase가 존재한다.

기말 범위의 Data link layer의 역할은 인접 노드간 통신에서 error control, flow control이 주목적이다. Data link layer의 데이터 단위는 frame이고, network layer의 packet를 payload로, 앞뒤에 header와 trailer를 덧붙인다.

Data link layer의 서비스 방식에는 unacknowledged/acknowledged와 connectionless/connection-oriented 방식이 있고, 각각 feed back 유무와 setup phase 유무로 갈린다.

Error control은 주로 detection으로 구현되며, 에러 검출시 재전송을 하는 방법이 쓰인다. Detection 알고리즘은 주로 CRC비트를 추가해서 사용한다. Flow control은 receiver 측 버퍼가 가득찼을 경우 sender 측에 송신을 중단하는 요청을 보내는 방식으로 구현된다.

Framing 방식은 byte stuffing 혹은 bit stuffing 방식이 사용된다.

Data link layer의 protocol은 ideal한 noiseless channel의 경우 simplest, stop-and-wait 방식이 소개되고, noisy channel에서는 error control과 flow control이 가능한 Stop-and-Wait ARQ, Go-Back-N ARQ, Selective Repeat ARQ 방식이 사용된다. 또한 수신 측 응답과 데이터를 함께 보내 양방향 통신의 효율성을 높이는 piggybacking 방식이 사용된다.

Go-Back-N ARQ와 Selective Repeat ARQ 방식에서는 sliding window 형태의 buffer를 사용해 data-ack-data-ack를 비효율적으로 반복하지 않고, buffer 빈 공간만큼 데이터를 주고 ack를 보내는 방식으로 처리된다.

Data link layer의 가장 대표적인 프로토콜은 HDLC인데 frame 구성이 'Flag-Address-Control-Information-FCS(CRC)-Flag'로 구성되어 있다. Control은 효율성을 위해 I-frame(데이터), S-frame(ack,busy,rej,srej 등의 응답과 SN),U-frame마다 다른 bit를 사용한다.

LAN

후반부에는 broadcast 환경의 LAN 방식의 프로토콜을 중점적으로 배웠다. Multiple-access 프로토콜은 크게 Random access, Controlled-access, Channelization으로 나뉜다.

Random access에는 ALOHA, CSMA, CSMA/CD, CSMA/CA 방식이 있다. 어떤 채널이던지 access가 가능하기 때문에 충돌을 피하고, 충돌하면 통신을 중단하고 재전송하는 방법이 쓰인다.

Controlled-access에서는 Reservation, polling, Token passing 등 통신 순서를 정해주는 방식이 쓰인다.

Channelization에서는 FDMA, TDMA, CDMA 등 자원을 분할해서 사용한다.

Bridge

LAN 환경에서는 신호가 감쇠하거나 왜곡되는 것을 방지하기 위해 repeater를 사용하는데 여기서 발전한 것이 hub로 multiport repeater가 곧 hub이다. Hub는 그저 신호를 재전송하는 역할만 하고, 경로 선택이 불가능하다. 따라서 여기서 발전한 것이 bridge이다.

Bridge는 layer2의 switch이다. MAC 주소별로 port 번호를 table에 기록해뒀다가 송신 들어오면 해당 port로 보내주는 방식으로 collision을 감소시킨다.

VLAN

Virtual LAN은 스위치를 사용한 LAN 방식에서 group isolation을 가능케하는 방식이다. 다른 VLAN끼리는 router로, 같은 그룹끼리는 VLAN trunking으로 통신한다. VLAN은 switch port 번호나 48bit MAC 주소로 구성원을 구분한다.

Wireless LAN

무선 LAN의 아키텍쳐는 크게 BSS, ESS로 나뉜다. BSS는 Basic Service Set의 약자로 무선 LAN의 기본적인 topology이다. 공유기 등의 central base station(AP)가 있다면, infrastructure mode라고 분류하고, 없다면 Ad-hoc architecture로 분류한다. ESS는 여러 BSS들에 의한 네트워크 구성이다.

무선 통신에서는 hidden station problem이 발생하고, 이를 RTS/CTS handshaking 방식으로 해결한다.


통신이론

짧게 단원별로 기술하겠다.

Correlation의 의미, 통신에서의 쓰임새.
Convolution과 Fourier Transform, filter들(LPF, BPF, HPF).
Random 신호와 noise, wireless channel에서의 문제점, 해결법, 안테나 송수신 gain 계산.
Analog Bandpass Modulation1 : AM, DSB-SC, SSB, VSB, QAM 및 synchronization
Analog Bandpass Modulation2 : Angle Modulation(PM, FM), Frequency Translation, Multiple Access, Wide Area Coverage
Analog to Digital Conversion : ADC, Ideal Sampling, Natural Sampling, Flattop Sampling, Quantization
Analog Baseband Modulation : Analog Pulse Modulation, Pulse Code Modulation
Digital Modulation : Digital Communication, Digital Baseband Modulation, Digital Bandpass Modulation


디지털신호처리

2장

LTI system의 특성

3장

Time-domain에서의 분석, digital filter realization, Difference Equation 분석, 미분 방정식으로의 해석, Impulse response로의 해석 등과 circular convolution울 배웠다.

4장

Z 변환을 통해 신호를 분석한다. Laplace transform의 discrete 버전이다. ROC로 stability 판단한다.

5장

Frequency Domain Analysis. DTFT, DFT 등을 공부했다.

6장

Filter concept을 공부했다. Gain, delay 등으로 달라지는 필터 특성을 알게되었다. FIR & Linear Phase filter의 조건, 특성 등도 나왔다.

7장

Sampling, interploation & recovery, upsampling, downsampling 등을 공부했다.

8장

DFT를 좀 더 자세히 공부했다. DFS와 DFT의 차이점, DTFT와의 관계 등을 공부했다. 또한 FFT도 공부했다.


AI

Convex Optimization

Convex에서는 local minimum이 global minimum과 같다는 아이디어로 global minimum을 찾는 problem이다. Hessian Positive Definiation, Lagrange Multiplier, Gradient descent등으로 최솟값을 찾는다.

Linear Regression

Supervised learning으로, Input parameter별로 linear한 결과를 계산하고, gradient descent와 learning rate으로 값을 바꾸면서 local minimum을 찾는다. Estimation도 연속적인 값이다.

Logistic Regression

Linear regression과 비슷하지만, 결과값이 True or False 형태로, Activation Function으로 0또는 1의 범위로 estimate한다. Multiclass Classification에서는 softmax로 분류한다.

Neural Network and Deep Learning

기존 logistic regression 혹은 linear regression에서 hidden layer를 더 추가해서 계산한다.

K-Means Algorithm

Unsupervised learning으로, classification이 미리 주어지지 않을 때에 input들을 k개의 cluster로 분류하는 방법이다.

Reinforcement Learning

Reward를 다르게해서 스스로 학습하는 방식이다.


ARM 마이크로프로세서

ARM 마이크로프로세서의 아키텍쳐, instruction set, ARM assembler directives, 실제 코드에서의 assembler directive 구조, exceptions과 interrupts 핸들링 방식을 학습했다.

profile
전국 DBA 랭킹 2000등(정원 2000명 중에)

0개의 댓글