본문 바로가기

전체 글

(271)
[네트워크] 2. Ethernet Ethernet 유선 랜에 대한 표준으로 데이터 링크 계층에서 표준, 프로토콜을 정의한다. CSMA/CD를 통해 다중 접속을 관리한다. Ethenet의 패킷의 이름은 frame이다. Ehthernet Frame Format header: MAC 목적지 주소(6B) + MAC 송신지 주소(6B) + 계층 3의 type(2B) payload: 실제 전송되는 데이터(46~1500B, 46B 보다 작을경우 0으로 채움) CRC: 오류검출, 정정을 위함(4B) 타입은 수신자에서 디멀티플렉싱 과정을 통해 계층3 프로토콜이 IP인지 ARP인지 확인하는 용도로 사용된다. EX) 와이어샤크에서의 패킷 캡쳐 목적지: e4beedd77a3f 송신지: 645d86508697 타입: 0800 (IP)
[네트워크] 1.데이터 통신 및 기초 데이터 통신 컴퓨터와 같은 기기 사이에서 디지털 형태로 표현된 데이터(1,0)를 주고받는 것을 의미한다. 데이터 통신의 3요소: 송신사, 수신자, 전송매체 프로토콜(Protocol)이란, 송신자와 수신자 사이의 합의된 통신 규약을 의미한다. TCP/IP 프로토콜 5계층 Physical layer: 물리적인 통신 매체에 대한 규약으로 bit를 다음 링크로 전달한다. Datalink layer: 유무선 링크를 통해 frame을 전달한다. Network layer: 서롣 다른 네트워크 간의 연결을 생성한다. Transport layer: 응용 프로그램 간의 신뢰성 있는 통신을 담당한다. Application layer: 응용 프로그램 간의 연결을 지원해준다. 에러 검출 및 정정 기법 1. Parity 보내고자..
[운영체제] 9. Paging (and Beyond Physical Memory) Paging 주소 공간을 고정된 크기의 page 단위로 물리 메모리의 frame에 불연속적으로 매핑하는 방식이다. Segmentation의 경우 다중 프로세스간 공유와 보호라는 장점이 있지만, 외부 단편화가 발생한다. 하지만, paging은 외부단편화가 없고 하드웨어 지원이 간단하다. 그리고 이후에 학습할 demand paging을 하기에도 쉽다. Paging의 주소 변환은 page table을 이용한다. Page table은 각 page가 물리 메모리의 어느 frame에 위치하는지 나타낸다. 또한, Page table은 각 프로세스 당 하나씩 존재한다. Paging에서의 주소 변환 예를들어, 가상메모리는 총 64B의 크기이며 page의 크기는 16B이다. 그리고 물리 메모리는 총 128B이며 frame..
[운영체제] 8. Memory Management 메모리의 발전 초기 시스템에서 메모리는 물리 메모리를 직접 사용하는 형태였다. 시스템에는 하나의 프로그램만 동작중이고, overlay를 통해 물리 메모리의 사이즈보다 큰 프로그램은 나누어서 필요할 때 물리 메모리 공간에 올려 수행하게 된다. 이후 컴퓨터 하드웨어의 발전으로 여러 프로세스를 수행할 수 있게 되었고 이때 time sharing이 도입된다. 이후 주소공간을 통해 프로세스는 자신반의 크고 독립적인 가상적인 메모리 공간을 가지게 된다. 메모리는 정적으로 변하지 않는 코드, 데이터 영역과 프로그래머의 명시적 할당으로 인해 동적인 힙, 그리고 컴파일러가 암시적으로 할당하는 동적 영역인 스택으로 구별된다. 메모리 가상화 위 처럼 프로세스 별로 주소공간(가상 메모리)를 갖게 되었다. 이때 실제 프로그램 ..
[운영체제] 7. Advanced File System UFS(Unix File System) 유닉스에서 사용하는 가장 기본적인 파일시스템 형식으로 inode와 data를 번갈아가며 접근하게 되어 seek time이 크다. 또한 일관성 문제가 존재한다. 장점으로는 간단하고 사용하기 쉽다는 장점이 있다. 성능이 낮은 이유는 inode와 data가 다른 트랙에 위치하기 때문이다. 그리고 점차 시간이 지나면서 단편화가 발생하여 더욱 긴 seek time이 유발된다. FFS(Fast File System) 이름에서 유추할 수 있듯이 빠른 파일 시스템이다. Disk-awareness를 통해 inode와 data를 가능한 가까이 배치하여 seek time을 줄이는 방식이다. (연관된 것을 같이 놓게 된다. Data-inode, file-directory) Disk-aw..
[운영체제] 6. File System Basic 정규 장치와 프로토콜 장치(Device) 인터페이스: Command, status, data 레지스터로 구성된다. 내부: 로직을 담당하는 controller, special chips, SW(firmware)와 메모리를 담당하는 I/O buffer로 구성된다. 프로토콜(Protocol): 장치간의 상호작용의 순서를 의미한다 Idle check → data → command → finish check 위의 순서를 제공하는 메커니즘으로 Programmed I/O, interrupt, DMA 등이 존재한다. Interrupt를 이용한 CPU의 부하 감소 Interrupt 장치가 Idle 상태가 될 경우 CPU에게 알리게 된다. 따라서 해당 쓰레드는 sleep 상태로 overlapping이 가능하다. → CPU..
[운영체제] 5. Concurrency: Semaphores and Deadlock2 Common Concurrency Problem 프로세스를 병렬적으로 처리하면 처리율이 증가한다는 장점이 있찌만 여러가지 병행성 문제가 발생할 수 있어 이를 잘 관리하여야 한다. Non-deadlock bug ① Atomicity-violation bug: lock을 이용하여 원자성을 보장하는 형태로 해결한다. ② Order-violation bug: condition variable을 이용하여 해결한다. (lock의 보조 필요) Deadlock bug 여러 쓰레드들이 절대 발생하지 않을 상황을 기다리며 무한히 대기하는 상태이다. 데드락의 필요 조건 상호 배제 점유 대기 자원 비선점 환형 대기 데드락의 해결책 1. 데드락 예방: 데드락의 필요 조건 4가지 중 하나를 해결하여 데드락을 미연에 방지한다. ①..
[운영체제] 5. Concurrency: Semaphores and Deadlock1 Condition Variables(상태 변수) 상호배제와 동기화(순서 관계)를 제공할 수 있는 API pthread_cond_wait: run 상태의 쓰레드를 sleep 상태로 바꾸어 sleep 큐에 넣는 API pthread_cond_signal: sleep 큐에 존재하는 쓰레드를 깨워 스케쥴링 될 수 있는 ready 상태로 바꾸는 API 순서관계를 제공하는 방법 1. Busy waiting(spin): 성능이 좋지 않으며 자식이 많을 경우 문제가 생길 수 있다. 2. Codition variable: 성능도 좋으며 정확성을 보장한다. 생산자/소비자 문제 (Producer/Consumer Problem; Bounded Buffer Problem) 유한한 개수의 생산품을 보관하는 버퍼에 여러명의 생산자..