Computer Science 76
-
1.3 네트워크 코어1.2절의 종단 시스템을 연결하는 패킷 스위치와 링크의 그물망(mesh)에 대하여 살펴보도록 하자.아래 그림에서의 굵은 선들은 네트워크 코어를 나타낸 것이다.링크와 스위치의 네트워크를 통해 데이터를 이동시키는 두 가지 기본 방식패킷 교환(packet switching) : 보장되지 않는 (e.g., 인터넷)회선 교환(circuit switching) : 자원을 예약 → 보장된1.3.1 패킷 교환(packet switching)종단 시스템들은 서로 메시지(message)를 교환한다. (출발지 종단 시스템에서 목적지 종단 시스템으로 메시지를 보냄) 송신 시스템은 메시지를 패킷(packet)이라고 하는 작은 데이터 덩어리로 분할한다.각 패킷은 통신 링크(communication link)와..
-
1.1 인터넷이란 무엇인가?위의 질문을 답하기 위한 방법으로는 다음과 같이 두 가지로 존재한다.인터넷을 구성하는 기본적인 하드웨어 & 소프트웨어 구성요소에 대한 기술 (1.1.1)분산 애플리케이션에 서비스를 제공하는 네트워킹 인프라스트럭처 관점에서의 인터넷을 기술 (1.1.2)1.1.1 구성 요소로 본 인터넷아래의 그림은 인터넷의 구성요소를 나타낸 것이다. 인터넷(Internet)Network of Network전 세계적으로 수십억 개의 컴퓨팅 장치를 연결하는 컴퓨터 네트워크 호스트(host), 종단 시스템(end system)컴퓨터 네트워크에 연결된 컴퓨팅 장치e.g., 서버 (데스크탑 PC, 리눅스 워크스테이션, 웹페이지 등), 인터넷에 연결된 모든 인터넷 ‘사물들’ (TV, 스마트 워치 등)통신 링..
-
BFS와 DFS는 모두 그래프를 탐색하는 방법이다. 그래프는 Node와 Node를 연결하는 Edge로 이루어진 자료구조이고 그래프를 탐색하는 것은 하나의 정점으로부터 연결된 모든 정점들을 한 번씩 차례대로 방문하는 것입니다. 깊이 우선 탐색(DFS, Depth - First Search) 그림과 같이 하나의 정점에서 끝까지 탐색해 최하단의 정점까지 방문 후, 이전 갈림길로 돌아와 선택하지 않은 정점을 방문하는 식으로 탐색한다. DFS는 스택의 자료구조를 이용하고 구체적인 방문 과정은 다음과 같다. 탐색 첫 노드를 스택에 삽입후 방문 처리 스택의 최상단 노드에 방문하지 않은 인접 노드가 있으면 그 인접노드를 스택에 넣고 방문 처리, 인접 노드가 없다면 스택에서 최상단 노드를 꺼내기 2를 수행할 수 없을때까..
-
Disk Scheduling 1. First-in, First-out (FIFO) 큐에 먼저 들어온 request 부터 처리한다. 2. Shortest Service Time First 실행시간이 짧은 request 부터 처리한다. 3. SCAN 굉장히 공정한 방법이다. Starvation 발생 가능성이 거의 없다. (완벽하게 없진 않다. 특정 트랙에 계속해서 request 가 쏟아지면 진행을 못할 수도 있기 때문이다.) → 완벽하게 fair 하냐? X, 어떤 상황에서 완벽하게 fair 하지 않나? 디스크 안에 여러 트랙이 있는데 중간 트랙에 있는 request가 있고 안쪽끝과 바깥쪽 끝에 있는 request가 있다. request가 딱 도착을 했을 때 헤더가 그 트랙에 대한 서비스를 끝마치고 트랙을 막..
-
Operating System Design Objectives I/O I/O cannot keep up with processor and main memory speed ==> Efficiency is an important issue I/O 에서는 속도가 매우 중요하다. 하드디스크 성능이 나쁘게 되면 아무리 CPU 나 메모리가 좋아도 성능이 올라갈 수 없다. Uniform Desirable to handle all I/O devices in a uniform manner ==> Generality is an important issue I/O device 들을 access 하는데 uniform 한 방법으로 access 하고 싶다. monitor이든 file 이든 입출력시 동일한 명령을 사용해서 같은 방..
-
Windows System Scheduling Real-time task → Round-Robin 방식 사용 ↳ 언제나 우선순위 기반의 Preemptive Scheduling 기법이다 🌟 내가 어떤 task 를 실행하고 있다가도 이거보다 조금이라도 우선순위가 높은 프로세스가 갑자기 시스템에 새로 들어오면 하던 거 중단하고 새로 들어온 프로세스를 서비스한다. Non-Real-time task → Feedback 방식 사용 ↳ 계속 CPU 를 사용하면 우선순위가 내려가고 CPU 를 사용하면 우선순위가 올라간다. 프로세스들이 한 번 Ready Queue 에 들어가면 끝날 때까지 작업하는 것이 아니라 Ready Queue 에 갔다가 I/O 작업 했다가 Ready Queue 에 갔다가, ... 한 번 Ready ..
-
Design Issues 프로세스가 시스템 안에 들어왔을 때 이 프로세스를 어느 CPU 에게 할당해줄 것 인가? CPU 마다 개별적인 Queue 를 줄 것인지? Global Queue 를 줄 것인지? ✅ MultiProgramming? Uni-Processor 에서는 MultiProgramming 은 당연한 것 Block 은 주로 I/O 작업에 의해서 발생하는데, 하나의 application 안에서 여러개의 프로세스들 또는 스레드들이 만들어져서 굉장히 빈번하게 동기화를 한다고 했을 때의 Block 상태는 I/O 작업을 위한 Block 이 아니라 동기화를 위한 Block(Semaphore Wait) 또는 데이터를 주고 받기 위한 Block 과 같은 상황이 주이다. 이 경우, Switching 을 하는 것보..
-
우선순위의 기준이 무엇이냐에 따라 좋은 스케쥴러가 달라진다. 우선순위: Queue 에 들어온 순서 공정성 ↑ 예측가능성 ↑ : 내가 언제 실행을 끝낼 수 있는지 예측할 수 있음 SPN (Shortest Process Next), SRT (Shortest Remaining Time) Response Time 이 중요한 시스템에서 좋다. 그러나 시간예측과 Starvation 의 문제점이 있다. Response Time Fairness SRT(Shortest Remaining Time) Round-Robin SPN(Shortest Process Next) FCFS(First-Come-First-Service) Preempted ↔ Non-Preempted : 기준으로도 나눌 수 있다. Preempted Non..