본문 바로가기

CS

(5)
Application Layer 네트워크 어플리케이션 구조 네트워크 어플리케이션 구조는 개발자에 의해 설계되고, 개발자는 어플리케이션이 다양한 종단 시스템에서 어떻게 조직되어야 하는지를 지시한다. 네트워크 어플리케이션 구조에는 클라이언트-서버 구조과 P2P구조가있다. 클라이언트-서버 구조 항상 켜져있는 호스트를 서버(server)라 부르고, 서버는 클라이언트라는 다른 호스트의 요청을 받는다. 클라이언트 호스트는 가끔 혹은 항상 켜져 있을 수 있다. 이 구조에서 클라이언트는 서로 직접적으로 통신하지 않는다. 서버는 고정IP를 갖고 항상 작동중이므로 클라이언트는 서버 주소로 패킷을 보내서 항상 서버에 연결할 수 있다. P2P 구조 항상 켜져 있는 기반 구조 서버에 최로로 의존하거나 의존하지 않는다. 대신에 피어(Peer)라는 간헐적으로 연..
CPU 스케줄링 CPU 스케줄링 CPU스케줄링은 프로세서가 유휴시간없이 계속 프로세스에 할당되어 실행될 수 있도록 하기 위한 작업이다. 코어가 하나인 시스템에서는 한순간에 오직 하나의 프로세스만이 실행될 수 있다. 다중 프로그래밍의 목적은 cpu 이용률을 최대화하기 위해 항상 실행 중인 프로세스를 가지게 하는 데 있다. 하나의 프로세스는, 어떤 I/O요청이 완료되기를 기다려야만 할 때까지 실행된다. 이렇게 되면 단순한 컴퓨터 시스템에서 cpu는 그저 놀고 있게 된다. 이러한 대기시간을 없애기 위해서 다중 프로그래밍에서는 이러한 시간을 생산적으로 활용하려고 시도한다. 어떤 프로세스가 대기해야 할 경우 운영체제는 CPU를 그 프로세스에서 회수해 다른 프로세스에 할당한다. 이러한 패턴은 반복된다. 이러한 종류의 스케줄링은 운..
스레드와 병행성 스레드란? 스레드는 CPU 이용의 기본 단위이다. 스레드는 스레드 ID, 프로그램 카운터, 레지스터 집합, 그리고 스택으로 구성된다. 스레드는 같은 프로세스에 속한 다른 스레드와 코드, 데이터 섹션, 그리고 열린 파일이나 신호와 같은 운영체제 자원들을 공유한다. 전토억인 프로세스는 하나의 제어 스레드를 가지고 있다. 만일 프로세스가 다수의 제어 스레드를 가진다면, 프로세스는 동시에 하나 이상의 작업을 수행할 수 있다. 멀티 스레드 프로그래밍의 이점을 다음 4가지 큰 부류로 나눌 수 있다. 응답성: 사용자가 오래걸리는 작업을 시작하는 단추를 클릭했을 떄 비동기 스레드에서 실행된다면 여전히 다른 작업들에 대해서 사용자에게 응답할 수 있다. 자원 공유: 프로세스는 공유 메모리와 메시지 전달 기법을 통해서만 자..
프로세스란? 프로세스란?​ 실행 중인 프로그램으로, 메인 메모리에 적재되어 프로세서에 의해 실행되고 관리되는 상태를 말한다. 하나의 프로세스는 네가지 섹션으로 구분된다. 텍스트 섹션: 실행 코드 데이터 섹션: 전역 변수 힙 섹션: 프로그램 실행 중에 동적으로 할당되는 메모리 스택 섹션: 함수를 호출할 떄 임시 데이터 저장소(함수 매개변수, 복귀 주소 및 지역변수) 함수가 호출될 때마다 함수의 매개변수, 지역변수 및 복귀 주소를 포함하는 활성화 레코드가 스택에 차례로 푸시된다. 이렇게 스택 영역에 차례대로 저장되는 함수의 호출 정보를 스택 프레임(stack frame)이라고도 한다. 프로그램은 디스크에 저장된 파일처럼 수동적인 존재, 프로세스는 다음에 실행할 명령어 지정하는 프로그램 카운터와 관련 자원의 집합을 가진 ..
네트워크 기본 - OSI 모델과 TCP/IP 모델 - OSI(Open System Interconnection) 모델 네트워크는 컴퓨터와 컴퓨터를 연결하는 무수히 많은 선으로 이루어진 망(net)을 말한다. 이 망을 통해 원하는 데이터를 주고받는 것을 통신이라고 한다. 이 통신을 목적으로 네트워크라는 망으로 전세계가 연결되어 있는 것이다. 이렇게 통신을 위해 수없이 많은 컴퓨터들이 연결되어있는 가운데에서, 나의 컴퓨터가 어떤 다른 컴퓨터와 원하는대로 연결되어 정확히 데이터를 전달한다는건 매우 어렵고 복잡한 일이다. 국제 표준화 기구(ISO)는 이 어렵고 복잡한 일을 추상화하여 이해하기 쉽고 일관적으로 네트워크를 구현할 수 있도록 개념 모델을 만들었고, 이 것이 바로 OSI 모델이다. OSI 모델은 아래와 같이 7계층으로 나뉘어 각각의 역할을 부여받는다...