본문 바로가기

전체 글

(40)
[운영체제] 주소공간( Address Space, Memory Management ) 우리는 한정된 메모리 공간을 효율적으로 관리할 수 있어야 한다. (메모리 단가가 있다보니...) 어떻게 효율적으로 관리할 수 있을지 알아보고 고민해보자! 주소 공간 (Address Space) CPU는 주소값을 통해 메모리에 접근한다. 많이 들었던 주소값이 이에 해당하고 메모리의 단위는 바이트(byte)이다. 그래서 주소 한 칸은 1 byte의 데이터를 저장할 수 있다. Physical Address(PA) 메모리를 큰 저장장치라고 생각하자. 단순히 큰 배열일 뿐이다. 배열이기 때문에 인덱스값을 가지는데, 이 값을 물리적 주소라고 한다. 논리적 주소도 마저 알아보고 간단한 예시를 통해 개념을 구체화 시켜보자. Logical Address(LA) 논리적 주소는 쉽게 말해 CPU 입장에서의 메모리 주소, 프..
[운영체제] Dead lock https://steady-coding.tistory.com/520 [운영체제] Deadlock cs-study에서 스터디를 진행하고 있습니다. Deadlock이란? 프로세스가 자원을 얻지 못해서 다음 처리를 하지 못하는 상태를 뜻하며, 교착 상태라고 부른다. 두 개 이상의 작업이 서로 작업이 끝나기 steady-coding.tistory.com Deadlock 이란? 이는 동기화 문제에서 이어진다. 교착상태라고도 하며, 프로세스가 자원을 얻지 못해서 다음 처리를 하지 못하는 상태를 말한다. 교착상태라고 하며, 두 개 이상의 작업이 서로 작업이 끝나기만을 기다리기 때문에 결과적으로 아무것도 완료되지 못한다. deadlock 발생 조건 4가지가 존재한다. 4가지 모두 만족해야 교착상태가 발생한다. 상호 배..
[네트워크] network layer - Data Plane(Router) 1 네트워크 계층의 역할 ? 송신 호스트에서 수신 호스트로 패킷을 전달하는 것이다. 이를 위한 두 가지 중요 기능을 알아야 한다. forwarding and routing fowarding(전달) : 패킷이 라우터의 입력 링크에 도달했을 때 라우터는 그 패킷을 적절한 출력 링크로 보내야한다. 라우터의 입력 링크에서 출력 링크로 어덯게 패킷을 전달하는지 Routing : 패킷을 전송할 때 패킷 경로를 결정해야한다. 이러한 경로를 계산하는 알고리즘을 routing algorithm 이라 한다. 둘이 비슷해 보이지만 포워딩은 라우터 입력 링크에서 적당한 출력 링크로 전송하는 내부적인 동작. 라우팅은 전반적인 경로를 결정하는것이다. network layer : data plane, control plane Data..
네트워크 (8) - 웹 캐싱(Web caching,proxy server) client 가 서버에 멀리 있다면 응답속도나 많은 점에서 단점이 존재한다. 우리는 그 문제를 해결하기 위하여 proxy server를 활용하고, 오늘은 이에 대해 알아보자. web cache client가 멀리 있는 origin server까지 가지 않고 가까운 proxy server의 web caches 파일에 접근하여 원하는 파일을 받아오는 기술이다. - client가 proxy server에 접근해 caches file이 있는지 본다. => caches가 있으면 proxy server에서 데이터를 받아온다. => caches가 없으면 proxy server는 origin server로부터 데이터를 요청하여 받아온다. 받은 데이터는 proxy server에 저장된다. 그리고 client에게 데이터를..
네트워크(7) - 쿠키 ( Cookie ) 우리가 인터넷을 사용하면 쿠키를 통해 정보가 저장되거나 혹은 쿠키를 삭제하는 일을 한번씩 겪어봤을 것이다. 오늘은 이 쿠키에 대해 다뤄볼 것이다. Cookie? 앞서 우리는 저번 포스트에서 Http 에 대해 많은 것을 다뤘다. 큰 특징 중 하나에 대해 기억해보자면 http는 stateless 하여 유저의 어떠한 정보도 기억하지 않는다는 것이었다. 좋은 점도 물론 있겠지만, 이에 대한 단점으로는 user의 id나 정보를 읽을 수 없다. 그래서 콘텐츠 제공, 차단 등과 같은 서비스를 제공하지 못한다. 그래서 우리는 state를 저장하고 있는 쿠키를 사용한다. 이 덕분에 사용자 정보를 읽어와 사용자 식별, 콘텐츠 제공등이 가능하게 된다. Cookie의 네가지 요소 일단 아래의 그림을 보자 일단 쿠키 기술은 네..
네트워크(6) - Web and HTTP 1990년대 초, 새로운 애플리케이션인 world wide web(www)이 등장했다. 웹의 등장으로 이전과 다르게 사용자들은 그들이 원할 떄 원하는것을 수신할 수 있게 되었다. 이를 on-demand 방식이라 하는데 이것은 라디오 처럼 제공자의 시간에 우리가 주파수를 맞추어야 하는것과 다르다. HTTP는 웹의 애플리케이션 계층 프로토콜이다. 이 덕분에 우리는 웹 페이지를 자유롭게 식별가능하게 되었다. 다시말해, HTTP는 클라이언트가 웹 서버에게 웹 페이지를 어떻게 요청하는지와 서버가 클라이언트로 어떻게 웹 페이지를 전송하는지 정의한다. 이번글은 이에 대해 알아보도록 할 것이다. HTTP 우리가 주소를 검색할때 생략하는 http는 웹에서 사용되는 web application layer protocol ..
네트워크(5) - 인터넷 전송 프로토콜이 제공하는 서비스(TCP, UDP) 인터넷이 제공하는 애플리케이션 지원 유형을 살펴보자. 인터넷을 포함해서 많은 네트워크는 하나 이상의 트랜스포트 프로토콜을 제공한다. 애플리케이션을 개발할 때는 사용 가능한 트랜스포트 프로토콜 중에서 하나를 선택해야 한다. 인터넷은 애플리케이션에게 2개의 전송 프로토콜을 제공한다. TCP UDP 개발자가 새로운 인터넷 애플리케이션을 만들 때 가장 먼저 결정해야 하는 것 중 하나는 UDP와 TCP 중 어느 것을 사용할 것인가이다. 이 둘이 애플리케이션들에게 제공할 수 있는 서비스는 무엇인가? 가능한 서비스들을 넓은 범위에서 신뢰적 데이터 전송,처리율,시간,보안 이라는 네가지 차원으로 분류할 수 있다. 신뢰적 데이터 전송( data integrity ) 패킷(전송되는 데이터) 들은 네트워크 내에서 손실될 수 ..
네트워크(4) - 프로세스 간 통신(Processes Communicating) 이번 글에서는 프로세스 간에 어떻게 통신을 하는가에 대해 알아보자. 알아보기 전 운영체제에서 배우는 프로그램, 프로세스에 대해 한 번 짚고 넘어가보자. 프로그램이란 우리가 일반적으로 생각하는 프로그램이 맞다. 카카오톡도 프로그램이고 워드 엑셀 역시 프로그램이다. 프로세스란 호스트 내에서 돌아가고 있는 프로그램이다. 같은 호스트 내에서 복수개의 프로세스가 돌아갈 수 있는데, 두 개의 프로세스가 내부적으로 통신이 가능하다. 전에 배웠던 client-server 구조는 server는 데이터를 제공하기 위해, client 는 데이터를 받기 위해 둘의 프로세스가 다르다. P2P 구조는 서버 모듈 클라이언트 모듈 모두 가지고 있다. 다른 호스트들에 있는 프로스세와는 메세지 교환을 통해 통신이 가능한데 소켓(Sock..