본문 바로가기

컴퓨터 공학27

응용 계층이란? 1. 저번 포스팅에서 TCP/IP 5계층에 대해 알아봤어요. 이제 계층별 역할과 계층별로 사용되는 프로토콜에 대해 알아볼 텐데요! 가장 먼저 알아볼 계층은 바로 응용 계층이에요. 응용 계층은 서로 다른 엔드 시스템의 어플리케이션 간에 정보를 교환하는 역할을 수행해요. 말이 조금 어렵죠? 이번 포스팅에서는 응용 계층이 어떤 일을, 어떻게 하는지 알아봅시다. 💪💪 2. 서로 다른 엔드 시스템의 어플리케이션 간에 정보를 교환한다는 것은 서로 다른 엔드 시스템의 프로세스끼리 통신하는 것을 뜻해요. 응용 계층은 서로 다른 컴퓨터의 프로세스가 정보를 교환하도록 지원하는 계층이라는 것이죠. 서로 다른 프로세스가 정보를 주고받기 위해서는 공통된 언어가 필요할 텐데요! 이때 주고 받을 메시지의 규칙을 정의한 것이 응용 .. 2022. 1. 31.
TCP/IP 5계층 1. 앞선 포스팅을 통해 네트워크는 참 복잡하게 구성된다는 것을 깨달았어요. 다양한 프로토콜과 통신 방법, 패킷 스위치/커뮤니케이션 링크로 구성된 인프라 구조 등 고려할 게 참 많았는데요! 이렇게 복잡한 네트워크를 어떻게 해야 유지보수 및 확장에 유리하게 설계할 수 있을까요? 2. 해답은 네트워크의 계층화인데요. 통신 절차 및 규약에 따라 네트워크를 단계적으로 분리하여 계층화시키는 것이죠. 역할에 따른 모듈화를 네트워크 전반에 도입하는 것이죠! 이에 따라 요구 사항의 변경 및 새로운 기술의이 도입된다면, 유연하게 유지보수 및 확장을 할 수 있어요. 3. 현대 네트워크에서 가장 보편적으로 사용하는 네트워크 계층화는 TCP/IP 5계층(혹은 4계층) 인데요. 각 계층은 SW, HW, 또는 둘의 결합으로 구현.. 2022. 1. 30.
데이터 교환 방식 (서킷 스위칭 & 패킷 스위칭) 1. 인터넷은 구리 선, 광섬유 등의 커뮤니케이션 링크와 라우터, 링크 레이어 스위치 등의 패킷 스위치로 구성된 인프라 기반 위에, TCP/IP 프로토콜 스위트를 사용해 데이터를 빠짐없이 알맞은 수신자에게 전송할 수 있다고 알아봤어요. 이번 포스팅에서는 좀 더 자세히 두 가지 데이터 교환 방식, 서킷 스위칭과 패킷 스위칭에 대해 알아봐요. 💪 2. 서킷 스위칭(회선 교환) 방식은 각 엔드 시스템끼리 하나의 전용선을 할당받아 데이터를 주고받는 방식이에요. 특정 커뮤니케이션 링크와 패킷 스위치를 할당받아 독립적인 통신 연결을 수립하는 것이죠. 전용선을 통해 연속적인 데이터를 주고받기에 데이터 통신 속도와 성능이 일정해요. 3. 서킷 스위칭의 예시로는 전화 수가 있던 초창기 전화 시스템이에요. 통신을 위해 직.. 2022. 1. 29.
인터넷이란? 1. 인터넷은 전 세계적으로 컴퓨팅 디바이스를 상호 연결하는 컴퓨터 네트워크 시스템을 뜻해요. 컴퓨팅 디바이스는 노트북, 스마트폰, 태블릿 등 인터넷을 사용하는 기기를 말해요. 네트워크 용어로 컴퓨팅 디바이스는 엔드 시스템으로 불려요. 2. 인터넷은 커뮤니케이션 링크와 패킷 스위치로 엔드 포인트들을 연결해요. 하나의 엔드 시스템에서 다른 엔드 시스템으로 데이터를 전송할 때, 데이터를 잘게 쪼개 조각마다 헤더 바이트를 붙이는데, 이를 패킷이라고 불러요. 3. 커뮤니케이션 링크는 땅에 깔린 구리 선, 광섬유 등 데이터를 물리적으로 전송하는 물질을 뜻해요. 물질의 특성에 따라 각기 다른 데이터 전송 속도를 가져요. 4. 패킷 스위치는 패킷을 올바른 엔드 시스템으로 이동하도록, 알맞은 커뮤니케이션 링크로 데이터.. 2022. 1. 28.
Chapter 9. 메인 메모리 - 2부 안녕하세요 파피몬입니다! 운영체제 9단원에 대해 공부해 보았습니다. 1부입니다! Abraham Silberschatz의 Operating System Concepts 10th edition과 학부 수업을 듣고 정리한 내용입니다. 오개념이 있다면 알려주세요~~ 2부에서는 1부에서 알아본 연속 메모리 할당의 한계점을 페이징을 통해 극복해 나가는 과정을 그립니다! 기존의 연속 메모리 할당에서는, 프로세스의 물리 주소 공간이 연속적이어야 한다. 이는 단편화 문제를 야기했다. 하지만 페이징이 도입되면서, 외부 단편화와 압축의 필요성을 피할 수 있게 되었다. 운영체제와 하드웨어의 도움이 모두 필요한 페이징을 하나씩 알아보자. 기본 방법 물리 메모리를 frame, 논리 메모리를 page라는 이름으로 같은 사이즈의 블.. 2020. 12. 1.
Chapter 9. 메인 메모리 - 1부 안녕하세요 파피몬입니다! 운영체제 9단원에 대해 공부해 보았습니다. 1부입니다! Abraham Silberschatz의 Operating System Concepts 10th edition과 학부 수업을 듣고 정리한 내용입니다. 오개념이 있다면 알려주세요~~ 1부에서는 현재 운영체제로 가는 역사 정도로 생각하면 될 것 같습니다. 이렇게 발전해서 페이징과 VM이 등장했구나의 초석을 다지는 내용입니다. 기본 하드웨어 CPU에서 직접 접근할 수 있는 장치는 메인 메모리와 각 처리코어에 내장된 레지스터다. 따라서 실행되어야 하는 명령어들은 CPU가 접근할 수 있도록 메인 메모리에 갖다 놔야 한다. 만약 메모리에 없다면 CPU 접근 전, 해당 명령들을 메모리에 옮겨놔야 한다. 또한 메인 메모리에는 병행 실행을 위.. 2020. 12. 1.
Chapter 8. 교착 상태 - 2부 안녕하세요 파피몬입니다! 운영체제 8단원에 대해 공부해 보았습니다. 2부입니다! Abraham Silberschatz의 Operating System Concepts 10th edition과 학부 수업을 듣고 정리한 내용입니다. 오개념이 있다면 알려주세요~~ 1부에서 교착 상태의 개념을 알아보고 처리 방법으로 예방, 회피, 탐지, 복구 방법이 있다고 했다. 예방까지 알아보았고 이제 2부에서 회피, 탐지, 복구에 대해서 알아보자! 1부에서 살펴본 예방 방식은 장치 이용률(utilization), 시스템 총 처리율(throughput)을 감소시킨다. 이를 개선시켜야 하는데... 생각해보면 각 스레드의 요청과 방출에 대한 완전한 순서를 파악하고 있다면, 스레드가 미래의 교착상태를 일으킬 것을 예상하여 대기시킬.. 2020. 11. 18.
Chapter 8. 교착 상태 - 1부 안녕하세요 파피몬입니다! 운영체제 8단원에 대해 공부해 보았습니다. 1부입니다! Abraham Silberschatz의 Operating System Concepts 10th edition과 학부 수업을 듣고 정리한 내용입니다. 오개념이 있다면 알려주세요~~ 다중 프로그래밍 환경에서는 여러 스레드들이 한정된 자원을 사용하기 위해 경쟁할 수 있다. 앞서 살펴본 세마포 같은 경우엔 자원을 할당해 줄 수 없다면 해당 스레드를 대기 상태로 변경해 저장해 두고 있었다. 하지만 여기서 문제가 발생하는데, 대기 중인 스레드들이 평생 대기해야 한다면 어찌해야 할까? 한 스레드가 요청한 자원들이 다른 스레드들에 의해 점유되어 있고, 그들 역시 다른 스레드가 점유 중인 자원을 대기 중이라면, 아주 단단히 꼬인 상황이 발생.. 2020. 11. 18.
Chapter 7. 동기화 예제 안녕하세요 파피몬입니다! 운영체제 7단원에 대해 공부해 보았습니다. Abraham Silberschatz의 Operating System Concepts 10th edition과 학부 수업을 듣고 정리한 내용입니다. 오개념이 있다면 알려주세요~~ 이번에는 우리 앞서 배운 동기화 도구들을 통해 고전적인 동기화 문제를 해결해보도록 하자! papimon.tistory.com/51 앞선 동기화 도구들 1부 포스팅에서 차 있는 버퍼의 갯수를 세는 count 변수의 inconsistency에 대해 알아보고 해결 방법을 알아보았다. 이제 이 문제를 Semaphore를 통해 해결해보자! 주석을 통해 동작 원리를 설명해 보았다. [소비자 & 생산자가 공유하는 자료구조] int n; semaphore mutex = 1; .. 2020. 11. 14.
반응형