728x90
반응형
SMALL

안녕하세요, 혼자 공부하는 네트워크를 공부하고 학습한 자료를 남깁니다.

  • 미시적으로 살펴보는 네트워크

  • 지난 시간 복습

  • 프로토콜 예시

언어가 통해야 한다.

 

감사합니다.

참고 url - https://www.youtube.com/watch?v=HDMk9u4TXxU&list=PLYH7OjNUOWLVwdRF6_QmJVR4cQdMp0SU1&index=6

 

728x90
반응형
LIST
728x90
반응형
SMALL

안녕하세요, 혼자 공부하는 네트워크를 공부하고 학습한 자료를 남깁니다.

  • 패킷의 구조

헤더(header), 트레일러(trailer) - 택배 송장, 데이터를 보내려는 주소가 담김

  • 주소

IP주소 또는 MAC 주소는 고유 주소이다. 주소가 있다면 "누구에게 어떻게 정보를 전송할지"를 지정할 수 있다.

특정 하나의 기기로 삼을 수도 있고, 같은 네트워크 내 모든 기기로 전송할 수도 있고 또는 같은 그룹에 속한 기기에 전송할 수 있다.

  • 송수신지 유형별 전송 방식

 

감사합니다.

참고 url - https://www.youtube.com/watch?v=-ZQqH_qVK00&list=PLVsNizTWUw7HfOCgvlfHIDPPo3TE-2iQM&index=7

 

728x90
반응형
LIST
728x90
반응형
SMALL

안녕하세요, 혼자 공부하는 네트워크를 공부하고 학습한 자료를 남깁니다.

  • 네트워크의 범위에 따른 분류

Local Area Network는 근거리 네트워크

Wide Area Network는 원거리 네트워크를 의미합니다. 먼 곳 까지 연결한 네트워크.

  • LAN(Local Area Network)

가정, 사무실 네트워크는 대부분 LAN이다.

한정된 네트워크는 대부분 LAN이다.

  • WAN (Wide Area Network)

LAN과 다른 LAN을 연결하는 광역 네트워크.

다른 나라의 가정에서 다른 나라의 가정으로 연결이 필요할 때.

KT, LGU+, SK 등이 있다.

WAN에 연결 가능한 회선을 임대해주는 등 WAN과 관련한 다양한 서비스들을 제공한다.

우리가 사용하는 스마트폰 인터넷 요금은 WAN 연결을 위해 ISP 업체에 납부를 할 것이다.

  • 네트워크를 조금 더 세밀하게 나누어 보자

CAN(Campus Area Network) - 학교 또는 회사의 여러 건물 단위

MAN(Metropolitan Area Network) - 도시나 대도시 단위

  • 어떻게 메시지를 교환하는지에 따른 분류

우리가 인터넷에서 주로 사용하는 메시지 교환 방식은 '패킷 교환 방식'이다.

  • 회선 교환 방식 (회선 교환 네트워크)

회선을 설정한다는 것은 두 호스트를 연결했다. 또는 연결한 전송로를 예약했다. 또는 전송로를 확보했다. 등을 의미한다.

회선 경로가 확보되면 호스트끼리 서로 메시지를 주고 받을 수 있다.

회선 스위치는 호스트 사이의 일대일 전송로를 확보하는 네트워크 장비이다.

  • 회선 교환 방식의 장단점

메시지 전송로를 예약만 해놓고 조금 메시지를 전송했다. 그러면, 회선을 점유하고 있기 때문에 이용 효율이 낮다.

끊임없이 메시지가 흐르고 있어야만 회선의 이용 효율이 높아진다.

큰 파일을 다운로드 받는다면, 한 번에 컴퓨터에 도달하는 것이 아닙니다. 패킷들로 분리되어서 송신되고 컴퓨터에서 재조립되어서 만들어진다.

  • 패킷 스위치

개발자로서 메시지 송수신을 공부한다면, 패킷을 공부하는 것이라고 볼 수 있다.

패킷은 영어로 소포라는 뜻이다. 택배랑 비슷한 개념이다.

네트워크를 통해서 패킷을 주고 받는 과정은 일상생활 속에서 소포를 주고 받는 것 또는 택배를 주고 받는 과정과 다르지 않다.

실제로 주고 받고자 하는 정보는 페이로드(payload)라고 부른다.

택배를 보낼 때 택배만 뚝하고 보내지 않는다.

송장도 같이 박스에다가 붙여서 택배를 보낸다.

네트워크 패킷도 마찬가지입니다.

어떤 호스트가 보낸 패킷인지, 누구에게 가야하는 패킷인지 알 수 있다.

패킷의 기본구조를 토대로 어떻게 호스트 끼리 메시지를 주고 받는가? 를 알아 볼 예정이다.

 

감사합니다.

참고 url - https://www.youtube.com/watch?v=FVoPnnC12k8&list=PLVsNizTWUw7HfOCgvlfHIDPPo3TE-2iQM&index=6

 

728x90
반응형
LIST
728x90
반응형
SMALL

안녕하세요, 혼자 공부하는 네트워크를 공부하고 학습한 자료를 남깁니다.

  • 네트워크의 기본 구조

어떠한 데이터를 저장하는 자료구조이다.

그 중 그래프가 있다. 노드와 간선으로 표현되는 데이터 구조이다.

네트워크 또한 자료구조이다.

노드는 정점이라 불리고, 간선은 링크라고 불린다.

네트워크는 전체적으로 그래프 형태를 띄고 있다.

노드들은 데스크탑 컴퓨터, 노트북 또는 스마튼 폰 등 우리가 자주 사용하는 네트워크 기기들이다. 가장자리 노드인 경우가 많다.

이 기기들을 연결하는 공유기 또는 간선들은 중간에 위치해 있다. 네트워크 장비들은 주로 중간 노드인 경우가 많다.

이 간선을 통해서 우리는 메시지를 주고 받는다.

  • 호스트

네트워크에서 주고받는 데이터를 최초로 생성해서 송신하거나 아니면 최종적으로 수신하는 것을 호스트라고 한다.

구글의 서버 컴퓨터는 호스트다. 우리가 사용하는 데스크탑 컴퓨터도 호스트다.

  • 호스트의 역할 구분

클라이언트(client)는 요청을 보내는 호스트이다.

서버(server)는 요청을 통해서 이에 대한 응답을 보내는 호스트이다.

웨이터에 비유할 수 있다.

  • 네트워크 장비 (중간 노드)

네트워크 장비로는 이더넷 또는 방화벽 등을 들 수 있다.

서버와 클라이언트는 역할에 따라 구분한 개념일 뿐, 베타적으로 반드시 서버는 서버이고 클라이언트는 클라이언트인 것이 아니다.

서버가 클라이언트가 되어 요청을 보낼 수도 있고, 클라이언트가 응답을 할 수도 있다.

또는 그냥 네트워크 장비로서 역할을 수행할 수 있다.

역할에 따라 분리할 수 있다.

  • 통신 매체

호스트가 아무리 빨리 정보를 빠르게 보낼 수 있어도, 통신 장비가 따라주지 않으면 빠르게 보낼 수 없다.

유 무선 통신매체이다. 

유선 통신매체는 케이블 그리고 무선 통신 매체는 Wifi를 들 수 있다.

  • 메시지 (노드가 주고 받는 정보)

 

 

감사합니다.

참고 url - https://www.youtube.com/watch?v=KuAlcc3I-Ao&list=PLVsNizTWUw7HfOCgvlfHIDPPo3TE-2iQM&index=5

 

728x90
반응형
LIST
728x90
반응형
SMALL

안녕하세요, 혼자 공부하는 컴퓨터 구조 + 운영체제를 공부하고 학습한 자료를 남깁니다.

 

  • 들어가며

  • 파티셔닝

구입된 새 하드 디스크 / SSD 는 파티셔닝, 포매팅 하기 전까지 사용할 수 없다.

서랍안에 물건을 보관할 때 정리해서 보관해야 한다. 이러한 일을 해야 한다.

필요한 물건을 찾기가 용이해진다.

용량이 큰 저장 장치를 하나 이상의 논리 단위로 구획하는 작업이다. 구분된 영역 하나 하나를 파티션이라고 부른다.

각각의 파티션을 확인할 수 있다.

하나의 영역이 구획되어 있다.

  • 포매팅

파일 시스템을 설정하고, 어떤 방식으로 파일을 관리할지 결정하고, 새로운 데이터를 쓸 준비를 하는 작업이다.

USB를 포매팅하는 장면이다. 용량은 어느 정도 되는지, 파일 시스템은 어떻게 되는지를 설정할 수 있다.

포맷할 때 파일 시스템이 결정된다.

파티션 마다 다른 파일 시스템을 사용할 지를 다르게 설정할 수 있다.

포매팅까지 완료가 되면 파일 시스템을 설정 했다면 파일과 디렉터리 생성이 가능해진다.

  • 파일 할당 방법

섹터를 블록 단위로 묶어서 관리하게 된다.

네모는 블록의 위치를 식별하는 주소라고 본다. 

블록의 위치에 파일을 할당할 것이다. 큰 파일은 여러 개의 블록에 걸쳐 저장이 될 것이다. 작은 파일은 적은 블록에 걸쳐 저장이 될 것이다.

  • 연속 할당

단순하게 보조기억장치에 연속해서 파일을 저장하는 방식이다.

연속 할당은 외부 단편화를 야기할 수 있다.

파일이 삭제 되었을 때, 잔여 블록에 새로운 파일을 할당하기 힘들다.

  • 불연속 할당 방법 - 연결 할당

조회할 수 있는 다음 블럭이 없는 경우 특별한 표시자를 붙여서 이 블록이 파일의 끝임을 나타낸다. 여기서는 -1이라고 표시하고 있다.

결과적으로 단점은 참조하는 블록이 많으므로 접근 속도가 매우 드리다. (자료 구조의 연결 리스트의 단점과 동일하다.)

순차적으로 접근을 해야만 한다. 성능면에서 아주 비효율적이다.

하드웨어 고장이나 오류가 발생을 하면 해당 블록에 접근을 할 수가 없다.

  • 불연속 할당 - 색인 할당

하나의 색인 블록이 모든 파일의 주소들을 기록하고 있다.

연결 할당 기법보다 파일의 임의의 위치에 접근하기가 용이하다.

  • 파일 시스템 살펴보기 - FAT 파일 시스템

USB, SSD 등 저용량 장치에서 주로 사용되는 파일 시스템이다.

연결 할당 기반의 파일 시스템이다. 연결 할당 기법의 단점을 보완하는 방식이다.

각 블록에 포함된 다음 블록 주소를 한데 모아 테이블로 관리

File Allocation Table이다.

MS-DOS에서 많이 사용 되었고

FAT12, FAT16, FAT32 등은 블록을 의미하는 비트 수를 의미합니다.

FAT가 메모리에 캐시될 경우 느린 임의 접근속도를 개선을 할 수가 있다.

기존의 문제점들을 해결할 수 있다.

위 그림은 FAT파일 시스템의 파티션을 간략화한 도식도이다.

예약 영역(파일 시스템에 필요한 기능들이 미리 예약되어 저장되는 영역)  / FAT 영역 / 루트 디렉터리 영역 (루트 디렉터리가 저장되는 영역) / 데이터 영역 (각종 파일들이 관리되기 위한 영역)

가장 먼저 루트 디렉터리부터 접근을 해야 될 것이다. 홈 디렉터리는 3번 블럭에 있다. 3번 블럭을 읽어서 home 디렉터리를 보니까 15번 블럭에 저장되어 있는 것을 알 수 있다. 그래서 minchul 디렉터리에서 a.sh의 9번 블럭을 읽을 수 있다. FAT 9번 블럭으로 가서 연결된 블럭들을 읽어서 파일에 접근하게 된다. -> /home/minchul/a.sh을 읽는 과정

  • 파일 시스템 살펴보기 - 유닉스 파일 시스템 (색인 할당 기반 파일 시스템)

i-node는 파일의 속성 정보와 15개의 블록 주소 저장 가능 

파일마다 이러한 i-node를 갖고 있고, i-node마다 고유한 번호를 갖고 있다.

i-node가 유닉스 시스템에서 가장 중추적인 역할을 한다.

i-node들이 하나의 파티션에 저장되어 있다.

만약에 15개 파일보다 큰 파일의 주소를 저장해야 한다면 어떻게 해야 할까?

12개에는 파일의 직접 블록 주소 저장을 입력하게 된다.

만일 13번째 부터 주소가 부족하다면, 12번째 블록 주소에 단일 간접 블록 주소를 저장한다.

만일 이로도 충분하지 않다면

14번째 블록에 이중 간접 블록 주소를 저장한다.

만일 이로도 충분하지 않다면 15번째 주소에 삼중 간접 블록 주소를 저장한다.

여기까지만 와도 왠만한 크기의 파일들은 모두 저장할 수 있게 된다.

유닉스 파일은 i-node만 알아도 파일의 속성과 파일의 위치를 전부 다 알 수 있다. 파일의 크기가 커도 마찬가지다.

i-node가 가장 중추적인 역할을 하고 있다. 파일 이름 외에 모든 것을 갖고 있다. 

파일 이름과 i-node 번호만 알아도 어떤 크기의 파일도 알아볼 수 있다.

다음은 예제이다.

i-node에는 블록주소만 갖고 있다.

루트 디렉터리에 가장 먼저 접근을 해야 한다. 루트 디렉터리 접근을 위한 i-node를 항상 기억하고 있다. 2번 노드에 접근해서 1번 블록에 접근해야 한다는 것을 알 수 있다. 그럼 루트 디렉터리에서 3번 노드를 확인해야 함을 알 수 있다. 가서 210번 블록을 확인하면 home 디렉터리를 알 수 있고, 8번 노드에 minchul 디렉터리가 있음을 알 수 있다. 8번 노드로 접근을 해서 121번 블럭에 minchul 디렉터리가 저장되어 있음을 알 수 있다. 다시 minchul 디렉터리로 가서 a.sh이 9번 노드에 저장되어 있음을 알 수 있다. 그럼 9번 노드로 가서 해당 색인을 읽어 a.sh을 읽는다.

파일 시스템만을 다루는 전공서가 있으므로, 파일 시스템이 무엇인지 어떻게 블록을 통해서 파일과 디렉터리를 관리하는지 그리고 대표적으로 어떤 기법으로 접근하는지를 보았다.

NT-FX, EXT 파일 시스템 등도 알아보면 좋다.

 

감사합니다.

참고 url - https://www.youtube.com/watch?v=C-IYRzC-GW8&list=PLYH7OjNUOWLUz15j4Q9M6INxK5J3-59GC&index=45

 

728x90
반응형
LIST
728x90
반응형
SMALL

안녕하세요, 혼자 공부하는 컴퓨터 구조 및 운영체제를 복습하고 자료를 남깁니다.

  • 들어가며

경로가 다르면 같은 이름의 파일이 존재할 수 있다.

만약에 경로가 같다면 불가능 하다. 동일한 파일에 접근할 수 없기 때문이다.

리눅스와 macos에서는 /를 루트 디렉터리 뿐만 아니라 /를 구분자로도 사용을 합니다.

..은 상위 디렉터리를 가리키고 .은 현재 디렉터리를 가리키는 경우가 많습니다.

 

감사합니다.

참고 url - https://www.youtube.com/watch?v=J8v7wxbnRAM&list=PLYH7OjNUOWLUz15j4Q9M6INxK5J3-59GC&index=44

 

728x90
반응형
LIST
728x90
반응형
SMALL

안녕하세요, 혼자 공부하는 컴퓨터 구조 + 운영체제를 공부하고 학습한 자료를 남깁니다.

 

  • 쓰기 시 복사

프로세스가 자원을 공유하는 대표적인 방법.

fork()를 호출하면 부모 프로세스와 동일한 자식 프로세스가 생성된다.

프로세스는 기본적으로 자원을 공유하지 않는다. 

자식 프로세스를 생성하는데 시간이 오래 걸릴 수 있고, 복제되는 부모 프로세스로 인해 메모리가 많이 소요될 수 있다.

부모 프로세스와 자식 프로세스는 동일한 프레임을 갖고 있지만, 쓰기 작업 시 

예를 들어 자식 프로세스가 쓰기 작업을 수행해야 한다면 페이지 2번의 복사본을 만들고 쓰기 작업을 수행한다.

동일한 프레임을 가리키므로 메모리 효율을 높일 수 있다. 또한 프로세스 생성 시간을 절약할 수 있다.

 

  • 계층적 페이징

기존 페이지 테이블보다 페이지 번호가 더 분리된다. 이렇게 논리주소가 이루어 진다. 물리 주소를 찾아간다.

바깥 페이지 번호를 조회하는 p1

페이지 테이블의 분리된 페이지를 조회하는 p2

그리고 물리 주소를 가리키는 d 로 구성된다.

계층이 많다고 해서 반드시 성능이 좋다고 볼 수는 없다.

 

감사합니다.

참고 url - https://www.youtube.com/watch?v=i4rpeyqAODo&list=PLYH7OjNUOWLUz15j4Q9M6INxK5J3-59GC&index=43

 

728x90
반응형
LIST
728x90
반응형
SMALL

안녕하세요, 혼자 공부하는 컴퓨터 구조 + 운영체제를 공부하고 학습한 자료를 남깁니다.

  • 들어가며

  • 페이지 교체 알고리즘

어떤 페이지를 교체해야 할지 결정하는 방법(알고리즘)이 페이지 교체 알고리즘

페이지 폴트가 발생하면 보조기억장치에 다시 접근을 해야하기 때문에 이를 줄여야 한다.

이를 생략해서

이렇게 반복되는 페이지를 생략하고 CPU의 페이지 참조를 생략한다. 이를 페이지 참조열로 간주한다.

프레임에 가장 오래 머물렀던 페이지를 내쫓고 필요한 페이지를 불러오게 됩니다.

  • FIFO의 문제점

프로그램 실행 내내 사용될 페이지는 먼저 적재되었다고 해서 내쫓겨서는 안 된다.

  • 최적 페이지 교체 알고리즘

  • 스래싱과 프레임 할당

프레임이 정해져 있기 때문에 메모리가 큰 컴퓨터가 성능이 더 좋다.

CPU가 쉴새없이 프로세스를 실행해야지, 페이지 교체에 너무 많은 시간을 소모하면 성능이 전체적으로 저하된다. 이를 스래싱이라고 한다.

스래싱은 굉장히 큰 컴퓨터 성능의 저하를 불러올 수 있다.

멀티프로그래밍의 정도는 메모리에 동시에 실행되는 프로세스의 수

동시에 실행되고 있는 프로세스의 수가 많다고 해서 CPU의 이용률이 높아지는 것은 아니다. 성능이 좋아지는 것은 아니다. 어느 정도까지는 CPU가 쉴새없이 일을 수행하지만 그 기준을 넘기면 CPU의 이용률이 현저히 떨어진다. 이 지점이 스래싱이 발생한 지점이다.

최소한의 프레임수를 파악하고 이를 프로세스들에게 할당을 해주어야 합니다.

  • 프레임 할당 방법(1) - 균등 할당

  • 프레임 할당 방법(2) - 비례 할당

균등 할당과 비례 할당은 정적 할당 방식 (크기만을 고려한 할당 방식)

  • 프레임 할당 방법(3) - 작업 집합 모델

CPU가 어떤 메모리를 참조할 때는 비슷한 구역을 참조한다. 100개의 페이지가 있다면 집중적으로 참조를 하지 전부 참조하지는 않는다. CPU가 특정 시간동안 주로 참조한 패이지 개수 만큼만 참조한다.

3초 동안 7개의 페이지를 집중적으로 참조한다면, 순간적으로 7개의 페이지에게 프레임을 할당해 주는 것이다.

t = t1일 때 작업 집합 = {5, 6, 7} 

따라서 할당될 프레임은 3개이다.

반비례 관계를 보이는 것을 볼 수 있다.

상한선과 하한선으로 척도를 측정할 수 있다.

 

작업 집합 모델, 페이지 폴트 빈도는 실행하는 과정을 보고 프레임을 할당한다. 그래서 동적 할당 방식이라고 부른다.

 

감사합니다.

참고 url - https://www.youtube.com/watch?v=nF26uioM6zU&list=PLYH7OjNUOWLUz15j4Q9M6INxK5J3-59GC&index=42

 

728x90
반응형
LIST

+ Recent posts