본문 바로가기

전체 글110

운영체제 시스템 콜이란? 앞으로 운영체제에 대해 쭉 정리해보려고 한다. 사실 저번학기 전필과목으로 운영체제를 배웠지만 당시에 이 과목이 왜 중요한지 와닿지도 않고 무엇보다 교수님의 목소리와 지루한 강의력에 공부를 안했더니 무려 D를 받았다. (후회는 없다 다시 돌아가도 그 강의를 듣고는 공부를 안할 거 같으니..) 이후 개인적인 흥미로 golang을 공부하다가 go 루틴을 이용한 멀티스레딩을 깔짝해보다가 운영체제 공부의 필요성을 느끼고 인터넷에 있는 강의를 보며 다시 공부중이다. (역시 동기부여가 있어야 공부가 잘된다.) 자 그럼 운영체제의 첫 포스팅으로 시스템 콜에 대해 알아보자. 우선 최근 컴퓨터들의 구조는 아래와 같다. 여기서 커널이란 프로세스 관리, 메모리 관리, 저장장치 관리와 같은 운영체제의 핵심적인 기능을 모아놓은 .. 2020. 11. 16.
캐시메모리란? 현대의 컴퓨터 구조는 폰노이만 구조로 실행하려는 프로그램이 메모리에 올라오면 cpu에서 메모리에 올라온 프로그램에 대해 여러 연산을 처리하여 프로그램을 실행하는 형식이다. 그런데 cpu에서 ram으로 접근하는 시간을 줄일 수 있는 방법을 고민하다가 나온게 캐시메모리이다. 비유를 들어 설명하자면 우리가 일상에서 하는 대화도 자주 사용되는 몇개의 단어들이 있는 것처럼 컴퓨터도 여러 명령어들 중에 빈번하게 사용되는 명령어들이 있다. 그런 명령어들을 ram이 아닌 더 빠른 메모리에 저장해놓고 cpu가 거기서 가져오면 더 빠른 연산이 가능하다. 그래서 위 그림처럼 cpu는 접근이 더 빠른 캐시메모리에 먼저 접근한 후에 원하는게 있는지 찾아본다. 이게 가능하려면 컴퓨터가 cpu가 미래에 쓸 데이터를 캐시메모리에 미.. 2020. 11. 14.
Transport Layer#3 Go-Back-N Go-Back-N이란 TCP에서 채택한 패킷 전송 방법이다. (밑에서부터는 편의상 GBN으로 부르겠다.) 사실 네트워크 책에서는 GBN을 소개하기전에 rdt에 관해 소개를 해주면서 천천히 확장하는 방식이지만 여기서는 생략하도록 하겠다. (궁금한 사람은 rdt1.0부터 검색해서 쭉 읽어보시길) 자 이제 본격적으로 GBN에 대해 알아보자. 서로 다른 호스트가 TCP를 통해 데이터를 주고 받는데 패킷을 하나씩 주고 받는다고 가정하자. 생각만해도 너무너무 느릴 것이다. 그래서 패킷을 한번에 여러개를 보내는 방법으로 GBN이 나온 것이다. 그런데 TCP는 패킷전송에 있어서 reliable하고 in-order delivery를 제공한다. 패킷을 하나씩 보내면 하나 보내고 제대로 갔나 확인하고 제대로 안갔으면 다시보.. 2020. 11. 9.
Transport Layer#1 Multiplexing & Demultiplexing Transport layer는 서로 다른 호스트에 있는 application processes들 간의 논리적 커뮤니케이션을 제공하는 layer이다. 물리적 기계간의 연결은 다른 layer들에게 맡기며 delay와 bandwidth을 보장하지 않는데 몇초후에 도착할지 또는 얼만큼의 대역폭을 잡을지는 Transport layer가 하는일이 아니라는 뜻이다. Multiplexing과 Demultiplexing을 알아보기 위해 아래 그림을 보자. p는 application layer들 위에서 동작하는 process들을 뜻한다. (그림에 있는 4개의 p들은 모두 각각 다른 process라고 보면 된다.) 자 이제 가운데 네모가 왼쪽과 오른쪽 네모에게 데이터를 전송한다고 가정해보자. Multiplexing이란 가운.. 2020. 11. 9.