본문 바로가기

IT86

[ 네트워크 ] Circuit-switching Circuit-switching source와 destination 사이의 경로를 정해버리면 queueing delay 완화되고 중간에서의 손실도 줄어든다. 하지만 문제는 경로를 설정해놨는데 사용을 안한다면 낭비가 된다. 그렇다면 계속 데이터를 주고받아야 한다. 아하! 전화에 적합하구나! 해서 Circuit-switching은 전화를 위해 개발된 것이다. 만약 친구와 통화를 한다면, 내 목소리와 친구의 목소리가 흘러가는 경로가 미리 준비되어 있다. circuit-switchgin의 특징 1. 공유하지 않아 독립적이다. 2. 경로를 미리 지정한다. 3. delay와 loss가 완화된다. (라우터에 도착하는 패킷은 미리 지정된 경로로 빠르게 전송되기 때문에) 4. Bandwidth를 고정하면 사용자의 수가 .. 2020. 5. 1.
[ 컴퓨터구조 ] 피연산자 (Operands of Computer Hardware) 피연산자 (Operands of Computer Hardware) 우선 알아둬야 할 것이, CPU에서 Memory로 접근하는 것보다 register로 접근하는 것이 훨씬 빠르다는 것을 알고 있어야 한다. Register Operands 이전 글(Operation)에서 연산 instructions은 register operands를 사용했다. (memory가 아닌 register임에 주목하자) register는 프로세서 내부적으로 관리하는 저장공간으로, 데이터를 담을 수 있는 가장 기본적인 단위이다. 현대 레지스터의 크기는 일반적으로 32bit이다. 0~31로 번호가 매겨져있다. 이 32bit의 data는 "word"라고 불려진다. - $t0, $t1, $t2, ... ,$t9 는 임시 값들이다. - $s.. 2020. 5. 1.
[ 컴퓨터 구조 ] 하드웨어 연산 (Operation of Computer Hardware) 하드웨어 연산 (Operation of Computer Hardware) 하드웨어 설계의 3대 원칙이 있다. 이것은 차차 알아가보도록 하겠다. 산술 연산 (Arithmetic Operations) add와 sub, 그리고 3개의 operands(a, b, c)가 존재한다. operands에는 두개의 source(b, c)와 한개의 destination(a)이 존재한다. 모든 산술 연산은 이러한 형태를 가지고 있다. 이렇게 모든 명령어가 operand를 3개씩 갖도록 제한하는 것은 하드웨어를 단순하게 할 수 있다. 여기에서 하드웨어 설계 원칙 중 첫번째를 알 수 있다. Design Principle 1 : Simplicity favors regularity 간단하게 하기 위해서 같은 형태를 사용하는 것이 .. 2020. 5. 1.
[ 네트워크 ] Packet-switching Packet-switching Packet-switching이란? switching이란 어디로 갈 지 길을 바꿔주는(정해주는) 역할을 하는 것. Packet-switching은 패킷단위로 switching하는 것이다. 패킷단위로 어디로 갈 지 길을 정해주는 것이다. 여기에서 중요한 원칙은 Store and forward이다. 라우터가 패킷 하나를 받아서 잠깐 저장(store) 후, 어디로 보낼 지 판단하고 보내는 것(forward)이다. 이 과정에서 시간이 걸리는데 이것을 지연시간(delay time)이라고 한다. 그렇다면 한가지 상황을 보자. 위와 같이 여러 사용자가 link를 공유하고 있는 상황에서, 들어가는 길은 100Mb/s로 넓은데 나가는 길이 1.5Mb/s로 좁다면, 전송이 느려지게 된다. 단.. 2020. 5. 1.
[ 네트워크 ] Packet Packet Packet이란? Host는 데이터를 전송하는 기능이 있는데, 전송하려는 데이터를 chunk라는 것으로 자른다. 이것을 Packet이라고 한다. 쉽게 말해서 전송하는 데이터를 일정한 크기의 데이터로 자른 것을 Packet이라고 한다. 실제 전송되는 데이터 단위이다. 서버 상에서 주고받는 데이터는 모두 Packet이라고 생각하면 된다. Packet transmission delay 그렇다면 패킷을 전송할 때 걸리는 시간이 얼마일지 알아보자. 각 패킷의 길이를 L 이라 하자. 어떤 host에서 데이터를 보내는데 link에서 보낼 수 있는 전송률, 즉 link transmission rate를 R이라고 하자. (R은 capacity, link bandwidth라고도 말할 수 있음.) 위 그림에서 .. 2020. 4. 29.
[ 컴퓨터 구조 ] Floating Point Floating Point 정수형 표현이 아닌, 실수형 표현을 컴퓨터는 어떻게 하는지 알아보자. 실수형 표현은 정수와는 달리, 매우 크거나 매우 작은 수를 표현해야 한다. 그에 따른 규칙들이 존재한다. normalized - 소수점 앞의 수는 1자리 수여야 한다. - 소수점 바로 앞 1자리 수는 1~9사이의 값이어야 한다. - 뒤에 곱해지는 형태는 지수형태여야 한다. ex) -2.34 * 10^56 => normalized +987.02 * 10^9 => not normalized (소수점 앞 수가 3자리이기 때문) +0.0002 * 10^-4 => not normalized (소수점 앞 수가 0이기 때문) Floating 수를 표현하기 위해서 지수부분은 소수점 기준으로 양수, 음수가 나뉘게 된다. ex.. 2020. 4. 28.
[ 네트워크 ] Access network Access network Access network 한국말로 접속망이라고 생각하면 된다. end system과 다른 end system을 사이의 경로상에 있는 첫번째 라우터(edge router)에 연결하는 네트워크를 access network라고 한다. 즉, access network는 end system이 네트워크에 연결되기 위해 제공되는 네트워크라고 할 수 있다. 그렇다면 edge router에 어떻게 end systems가 연결되느냐?? 집은 residential access networks를 설치. 학교, 회사, 기관은 institutional access networks를 설치. 기지국 같은 곳에 mobile access networks를 설치. DSL (digital subscriber l.. 2020. 4. 28.
[ 네트워크 ] network core와 network edge network core, network edge Network edge 네트워크를 사용해야 하는, end user가 사용해야 하는, 우리가 사용하는 디바이스(휴대폰, 노트북 등)들이 있다. edge에는 컴퓨터만 있는 것이 아니고, 네트워크에 들어가기 위한 "입구"로써 역할하는 것이 필요하다. 그것이 바로 라우터. Network core 우리가 통신(메시지 보내기, 네이버 다음 등에서 브라우징 등)을 하려면 end와 end, 가장자리에 있는 컴퓨터들끼리 연결이 되어야 한다. 이 연결을 제공해 주는 것이 네트워크이다. 이 연결을 제공해주는 것이 Network Core이다. 그리고 Network core에서 쓰이는 어떠한 기술 때문에 패킷이 온전히 가는 것이 아니라, 천천히 가기도 하고 패킷이 버려지는 일이 .. 2020. 4. 27.
해시 (Hash) - 전화번호 목록 전화번호 목록 문제 출저 - 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/42577 - 제한사항 분석 1. phone_book의 길이는 1 이상 1,000,000 이하입니다. 2. 각 전화번호의 길이는 1 이상 20 이하입니다. => 문제의 크기를 나타냅니다. - 이 문제에서 원하는 것은? phone_book의 각 요소들의 번호에 대한 수를 기록하고 저장하는 구조 !! => 이름(Key), 이름에 대한 수(Value) 로 key value 쌍을 만들어야 하는데, key가 string이고 value는 int입니다. 이렇게 정수 인덱스 말고 문자열 같은 다른 타입으로 찾아갈 수 있는 구조가 바로 해시입니다. (완주하지 못한 선수와 거의 동일합니다) .. 2020. 2. 20.
해시 (Hash) - 완주하지 못한 선수 완주하지 못한 선수 문제 출저 - 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/42576 - 제한사항 분석 1. 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. => 문제의 크기를 나타냅니다. participant의 길이가 100,000이하라는 것도 말해줍니다. 2. completion의 길이는 participant의 길이보다 1 작습니다. => 1명만 완주하지 못한 것을 알려줍니다. 3. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. => 이것 또한 문제의 크기를 나타냅니다. 4. ★★참가자 중에는 동명이인이 있을 수 있습니다. => 이 조건으로 유형이 달라집니다. 동명이인이 있을 수 있기.. 2020. 2. 20.
해시 (Hash) 해시 (Hash) 해시(Hash)란? - hash table이라는 저장공간 내에 key들이 어떤 위치에 있을지를 정해서, hash table 안에 값들을 저장하는 구조를 말합니다. 해시는 key value 쌍으로 이루어져 있으며, 배열과 달리 key value가 int형이 아니어도 됩니다. 만약 key value가 int형이라면 선형배열(linear array)을 이용해도 되지만, int가 아닌 string같은 다른 자료형일 경우 해시를 이용하면 좋습니다. * 사상, 매핑(mapping) - 위의 그림에서 "leo"는 2번째 칸에, "kiki"는 7번째 칸에, "eden"은 3번째 칸에 사상 또는 매핑(mapping) 되었다고 표현합니다. * hash function - hash table 안에 key들.. 2020. 2. 18.