Computer Science 38

[OS] 17장: Free-Space Management

17장: Free-Space Management물리 메모리의 빈 공간 관리할당과 회수를 통해 유지함분할과 병합물리 주소를 분할해서 사용하고, 다 쓰면 병합하는 식으로 동작분할메모리 요구를 하면,만족하는 크기의 빈 공간이 있을 때 할당 가능→ 20byte를 요구하면 안됨 (연속적이지 않아서)1바이트 요구주소가 20부터 시작인 노드가21로 바뀌고, len = 9로 바뀜병합사용 후 반환 시, 인접한 빈 공간과 합쳐짐가운데 10~19 사용중이던게 free 되었음0~19가 합쳐짐할당 공간의 크기 파악free 메소드에는 반환될 크기에 대한 정보가 없음Header 블록을 메모리에 두어서 정보를 받아냄Header 블록필수 정보할당된 크기추가 정보속도 향상을 위한 추가 포인터무결성 체크Header 블록이 있을 때,메모리..

[OS] 16장: Segmentation

16장: Segmentation개요세그먼트 = 임의의 길이의 연속된 주소 공간여기서는 Code, Heap, Stack을 세그먼트라 침주소변환 - 세그먼트 테이블물리 공간에 배치할 때, 세그먼트 단위로 배치함즉, 세그먼트마다 Base/Bounds 레지스터 필요 → 일반화 Base/Bounds 기법하나의 프로세스는 여러 개의 세그먼트로 구성됨세그먼트 주소 변환물리주소 = OffSet + BaseOffSet = 세그먼트 내에서의 위치가상 주소 공간에서 코드,힙,스택 별로 세그먼트가 있는데그 세그먼트 시작 지점에서의 위치로 Offset을 따짐Heap 주소 인코딩4200 번지의 세그먼트에서 인코딩하기4200 = 4096 + 104⇒ 01 | 0000 0110 1000Stack 주소 인코딩 (반대)스택은 거꾸로 ..

[OS] 15장: 주소 변환의 원리

15장: 주소 변환의 원리개요어떻게 메모리를 가상화 하여효율성과 제어를 달성할 것인가 ?효율성: 가상 주소 → 물리주소 변환의 속도제어권: 접근 가능한 메모리 위치 제한유연성: 프로그래밍 편의메모리 가상화하드웨어 지원이 필요함빠른 주소 변환MMU, TLB, Cache ..OS 역할빈 공간 관리 및 할당관리 효율 및 접근 제어가상 공간의 동적 운영메모리 사용 예void func() { int x = 3000; x = x + 3;}어셈블리어 변환128 번지 명령어 인출명령 실행132 번지 명령어 인출명령 실행135 번지 명령어 인출명령 실행가상 주소와 물리 주소물리적 주소물리 메모리에 그대로 올리면 안됨→ OS 재배치 작업 필요메모리 접근 시마다 실제 주소로 변환 작업Base/Bou..

Swift로 코드 최적화하기

백준/프로그래머스 풀다보면서 얻은 Swift 꿀팁 정리(다른 언어도 포함일 수도 ㅇㅇ) 1. 입력 받을 때 map { Int($0)! } 보다는 map { Int(String($0))! }이 더 빠르다.let input = readLine()!.split(separator: " ").map { Int($0)! }vslet input = readLine()!.split(separator: " ").map { Int(String(($0))! }2. 함수 단위로 코드를 실행하면 컴파일러 최적화 측면에서 더 효율적이다.func solve() -> Int { var N = Int(readLine()!)! var crane = readLine()!.split(separator: " ").map { Int..

[CN] 2장: CDNs

CDNsStreaming stored video: Client Buffer서버가 비디오를 보내면, 유저는 다음과 같이 보면 됨근데, 클라이언트-서버 간 대역폭은 네트워크 혼잡이 발생가능즉, 클라이언트 측의 버퍼가 필요함클라이언트 측 버퍼링 및 재생 지연을 위해네트워크 추가적인 지연과 지연 변이를 보상DASH 프로토콜비디오 품질이 좋을수록 더 높은 대역폭이 필요해서 만든 프로토콜클라이언트클라이언트-서버 간의 대역폭을 주기적으로 측정매니페스트 파일을 참조하여,비디오 조각을 요청함대역폭 상황에 따라 최대 품질 버전의 청크를 선택함서버비디오 파일을 여러 조각으로 분할각 조각은 여러 품질 버전으로 인코딩HD, FHD, 4K ..여러 품질 버전의 비디오 조각은 여러 서버에 저장됨매니페스트 파일: 여러 품질 버전의 ..

[CN] 2장: Peer-To-Peer Applications

Peer-To-Peer ApplicationsP2P 개요클라이언트가 송신, 제공 다 하는 역할 → 자기 확장성항상 동작하지 않고, 피어의 IP 주소는 바뀔 수 있음파일 분배: 클라이언트-서버 vs P2P한 서버에서 F크기의 파일을 N개의 피어로 배포하는데 걸리는 시간?클라이언트-서버: N이 증가함에 따라 선형적으로 시간 증가→ 서버가 N명한테 다 주는 방식서버 전송파일 1개: F/u파일 N개: N*F/u클라이언트최소분배시간: F/d(min)d(min) = 다운 로드가 가장 느린 클라이언트의 속도P2P: N이 증가해도, u(i)도 증가해서 효율적임서버 전송반드시 1개 파일,F/u 시간 걸림클라이언트최소분배시간: F/d(min)P2P 파일 분배: BitTorrent토렌트: 특정 파일 분배에 참여하는 피어의 ..

[CN] 2장: The Domain Name System, DNS

The Domain Name System, DNSDNS 개요1IP Address일반적인 IP 주소(IPv4)는 32비트,0~255 사이의 4개 숫자로 표시 됨IP 주소는 기억하기 어렵지만,google.com과 같은 호스트 이름은 기억하기 쉬움DNS (Domain Name System)DNS 서버들의 계층 구조로 구현된 분산 데이터베이스애플리케이션 계층 프로토콜로 구현된 핵심 인터넷 기능호스트가 분산 DB로 질의 허용UDP 상에서 수행되고, 포트번호는 53번사용자가 웹 서버의 호스트 이름을 입력하여, 웹 서버의 IP 주소를 얻는 절차유저 컴퓨터에 DNS 클라이언트가 계속 돌고있음URL로부터 호스트 이름을 DNS 클라이언트에 보냄DNS 클라이언트가 DNS 서버에 호스트 이름을 포함한 쿼리 보냄DNS 클라이언..

[CN] 2장: E-mail, SMTP, IMAP

E-mail, SMTP, IMAP전자메일 (E-mail)3개의 주요 구성요소사용자 에이전트메일 메세지 작성, 편집, 읽기메일 서버메일 큐에 메일 메세지들 담고 있음SMTP (Simple Mail Transfer Protocol)클라이언트: 보내는 메일 서버둘 다 서버를 갖고 있음서버: 받는 메일 서버메일 서버 간의 이메일 메세지 전송 규율SMTPTCP를 사용하여 이메일 메세지를 클라이언트에서 서버로 전송포트번호 25 사용3가지의 단계를 따름SMTP handshaking = 연결SMTP tansfer of message = 메세지 전송SMTP closure = 종료HTTP와 유사하게, 아스키 코드를 사용함응답 또한, 상태코드 사용SMTP 동작SMTP를 통해 엘리스 메일 서버에 도착메일 서버의 메세지 큐에 ..

[CN] 2장: Web and HTTP

Web and HTTP웹 Web객체들로 구성됨웹 페이지는 여러 참조 객체를 포함하는 base HTML 파일각 객체는 URL로 주소 지정 가능HTTP 개요Stateless, 과거에 대한 정보 XHTTP Message는 Request | Response 2가지 종류ASCII 코드 형식이다.포트번호 80 사용HTTP 1.0 (비지속 연결)클라이언트가 TCP 연결 요청서버가 TCP 연결 승인클라이언트가 메세지 요청서버가 메세지 응답HTTP 서버 닫음클라이언트가 응답 받고 데이터 얻음비 지속 연결의 경우, 총 10개의 이미지면 11번의 연결과 해제가 필요함RTT (Round - Trip - Time)서버한테 패킷을 보내고 돌아오는 시간비 지속 연결의 경우HTTP 응답시간 = 2RTT + 파일전송시간HTTP 1.1..