일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- DFS & BFS
- 백준 17608번
- 큐(Queue)
- 그리디 알고리즘(Greedy Algorithm)
- 플로이드 워셜 알고리즘(Floyd-Warshall Algorithm)
- DFS
- 다익스트라 알고리즘(Dijkstra Algorithm)
- 백준 2493번
- 백준 21606번
- BFS
- 백준 1707번
- 그래프(Graph)
- 백준 2504번
- 위상 정렬(Topology Sort)
- 이분 그래프(Bipartite Graph)
- 동적 프로그래밍(Dynamic Programming)
- 이분 탐색(Binary Search)
- 위상 정렬(Topological Sort)
- 스택(Stack)
- DFS(Depth First Search)
- 백준 1948번
- 백준 9012번
- BFS(Breadth First Search)
- 백준 2261번
- 분할 정복(Divide and Conquer)
- 백준 2812번
- 트리(Tree)
- 백준 18352번
- 백준 10000번
- 알고리즘 개념
- Today
- Total
목록컴퓨터 시스템 (42)
Always Be Wise

프로그램 카운터는 프로세서가 동작하는 동안에 아래와 같이 개별 인스트럭션에 대응되는 주소들을 연속된 값들로 가정한다. 이때, 특정 인스트럭션 주소에서 특정 인스트럭션 주소로의 전환을 제어 이동이라 부른다. 그리고 이러한 일련의 제어 이동 시퀀스를 제어 흐름이라고 부른다. 가장 간단한 유형의 제어 흐름은 "점진적"이다. 각각의 인스트럭션이 메모리에서 나란히 있는 경우다. 그런데 시스템의 상태 변화에 따라 제어 흐름의 갑작스러운 변화를 만들어야 하는 경우가 발생한다. 이와 같은 급격한 변화를 예외적인 제어 흐름이라고 부른다. 이러한 예외적인 제외 흐름은 컴퓨터 시스템의 모든 수준에서 발생한다(예를 들어, 하드웨어 수준에서 여러 입력 장치가 이벤트들을 발생시키거나, 시스템 소프트웨어 수준에서 문맥 전환이 발생..

HTTP(Hyper Text Transfer Protocol) HTTP(Hyper Text Transfer Protocol)은 하이퍼 텍스트의 교환, 전송을 위한 통신 규약이다. HTTP는 응용 계층에 해당하며 TCP/IP 프로토콜 위에서 동작한다. 또한 서버가 클라이언트의 상태를 보존하지 않는 비상 태성(Stateless), 연결을 유지하지 않는 비연결성(Connectionless)이라는 중요한 특징이 있다. HTTP 1.0 vs HTTP 1.1 HTTP 1.0과 비교하여 HTTP 1.1가 갖는 특징은 커넥션 유지, 호스트 헤더 2가지이다. 1. 커넥션 유지(Persistent Connection) HTTP 프로토콜은 클라이언트, 서버 간 데이터를 주고받는 응용 계층의 프로토콜이다. HTTP를 이용한 ..

IP(Internet Protocol) IP(Internet Protocol)은 송신 호스트와 수신 호스트가 패킷 교환 네트워크에서 데이터를 주고 받는데 사용하는 규약을 의미한다. 호스트의 주소 지정과 패킷 분할 및 조립 기능을 담당한다. 이때 패킷이란 인터넷 내에서 데이터를 보내기 위한 경로배정(라우팅)을 효율적으로 하기 위해서 데이터를 여러 개의 조각들로 나누어 전송하는데 이때 이 조각을 패킷이라 한다. 다시 말해, IP의 역할은 지정한 IP 주소에 패킷이라는 통신 단위로 데이터를 전달하는 것이라고 할 수 있다. 그러나 IP는 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송하며(비연결성), 전송 과정 중간에 패킷이 사라졌는지, 정확하게 전달 되었는지 확인하지 않는다(비신뢰성). TCP(T..

OSI 7 계층 OSI 7 계층은 정보 통신 업체 사이의 장비 호환성을 위해서 국제표준화기구에서 정의한 네트워크 표준 모델을 의미한다. 하위 계층으로 갈수록 하드웨어에 가까워지고, 상위 계층으로 갈수록 소프트웨어에 더 가깝다. 1계층부터 4계층까지를 하위 계층, 5계층부터 7계층까지를 상위 계층으로 분류한다. 상위 계층은 하위 계층의 기능을 이어받아 사용한다. [제 1계층] 물리 계층(Physical Layer) 시스템의 물리적, 전기적 표현을 나타내는 계층이다. 케이블 종류, 무선 주파수 링크, 핀, 전압 등의 물리적인 요건을 의미한다. [제 2계층] 데이터 링크 계층(Data Link Layer) 물리 계층 전반에 걸쳐 신뢰성 있는 데이터 전달을 제공하는 계층이다. 물리 계층에서의 오류를 찾아내고 수..

웹 클라이언트와 웹 서버는 HTTP(Hypertext Transfer Protocol)라고 하는 프로토콜을 사용하여 상호 연동한다. 클라이언트와 서버는 TCP 연결을 수립하고, 클라이언트는 서버에게 콘텐츠를 요청한다. 서버는 요청한 콘텐츠로 응답하고, 클라이언트와 서버는 연결을 닫는다. 이때 웹 클라이언트와 서버가 주고 받는 콘텐츠는 MIME(Multipurpose Internet Mail Extensions) 타입을 갖는 바이트 배열이다. HTTP 응답에서 반환된 콘텐츠는 정적(Static) 혹은 동적(Dynamic) 콘텐츠이다. 정적 콘텐츠란 서버 파일 안에 저장된 콘텐츠를 의미하며, 요청에서 어떤 콘텐츠 파일인지를 식별한다. 동적 콘텐츠란 프로그램에 의해 런타임에 만들어진 콘텐츠를 의미하며, 요청에..

기본적인 입출력 C 언어에서는 기억장치에 저장되는 파일을 다루는 것과 마찬가지 방식으로 입출력 장치를 다룬다. 따라서 키보드, 모니터와 같은 대부분의 콘솔 장치도 C 프로그램에서는 자동으로 열리는 파일처럼 다뤄진다. C 언어에서는 stdin 표준 스트림을 통해 입력 장치를 다루며, stdout 표준 스트림을 통해 출력 장치를 다룬다. 스트림(stream) C 프로그램은 파일이나 콘솔의 입출력을 직접 다루지 않고, 스트림(stream)이라는 것을 통해 다룬다. 스트림(stream)이란 실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름을 의미한다. 즉, 스트림은 운영체제에 의해 생성되는 가상의 연결 고리를 의미한다. C 언어에서 기본적으로 제공되는 표준 스트림(Standard Stream)은 표준 입력 ..

소켓은 네트워크 연결의 종단점을 의미한다. 네트워크 상에서 서버와 클라이언트 두 개의 프로그램이 특정 포트를 통해 양방향 통신이 가능하도록 만들어주는 소프트웨어 장치라고 할 수 있다. 따라서 통신할 두 프로그램 모두에 소켓이 생성되어야 한다. 위의 그림은 소켓 인터페이스 기반 네트워크 응용 프로그램의 개요를 보여준다. 소켓 주소는 sockaddr_in 타입의 16바이트 구조체에 저장된다. 구조체 안의 sin_family는 항상 AF_INET으로 32비트 IP 주소를 사용하고 있다는 것을 의미하며, sin_port는 16비트 포트 번호, sin_addr는 32비트 IP 주소를 의미한다. IP 주소와 포트 번호는 항상 네트워크 바이트 순서(Big Endian 방식)로 저장된다. siz_zero의 경우, 16..

글로벌 IP 인터넷(Internet, 대문자)은 internet의 유명한 예이다. 인터넷은 TCP/IP 프로토콜을 구현한 소프트웨어를 실행하며, 인터넷 클라이언트와 서버는 소켓 인터페이스 함수 및 UNIX I/O 함수들을 혼합하여 통신한다. 소켓 함수들은 일반적으로 시스템 콜들로 구현되는데 이 시스템 콜들은 커널에서 트랩을 발생시키며, TCP/IP에서 다양한 커널 모드 함수들을 호출한다. TCP/IP는 프로토콜의 집합으로 각각 서로 다른 기능을 제공한다. IP는 각각의 호스트에 유일하게 식별할 수 있는 주소를 할당하는 기법(basic naming scheme)과 데이터그램이라고 하는 헤더와 데이터로 구성된 패킷을 한 인터넷 호스트에서 다른 호스트로 보낼 수 있는 전달 메커니즘을 제공한다. TCP는 IP..

클라이언트-서버 모델 대부분의 네트워크 응용 프로그램은 클라이언트-서버 모델에 기반하고 있다. 해당 모델은 한 개의 서버 프로세스와 한 개 이상의 클라이언트 프로세스로 구성되며, 서버는 리소스를 관리하고, 이 리소스를 조작해서 클라이언트를 위한 서비스를 제공한다. 서버는 클라이언트의 요청에 의해서 활성화된다. 클라이언트 서버 모델에서 근본적인 연산은 트랜잭션(Transaction)이다. 트랜잭션은 아래와 같이 네 단계로 구성된다. 네트워크 호스트의 하드웨어 구성 클라이언트와 서버는 많은 경우 별도의 호스트에서 동작하며, 컴퓨터 네트워크의 하드웨어 및 소프트웨어 자원을 사용해서 통신한다. 호스트에게 있어 네트워크는 또 다른 종류의 I/O 장치이며, I/O 버스 확장 슬롯에 꽃혀 있는 어댑터를 물리적 인터페..

운영체제(Operating System)란, 컴퓨터 하드웨어 바로 위에 설치되어 사용자 및 다른 모든 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층을 의미한다. 협의의 운영체제(커널) 운영체제의 핵심 부분으로 메모리에 상주하는 부분, 가장 빈번하세 사용되는 기능들 담당 광의의 운영체제 커널 뿐 아니라 각종 주변 시스템 유틸리티를 포함한 개념 운영체제의 목적 1) 컴퓨터 시스템을 편리하게 사용할 수 있는 환경을 제공 - 운영체제는 동시 사용자/프로그램들이 각각 독자적 컴퓨터에서 수행되는 것과 같은 환상을 제공한다. - 하드웨어를 직접 다루는 복잡한 부분을 운영체제가 대행한다. 2) 컴퓨터 시스템의 자원을 효율적으로 관리 - 중앙처리장치(CPU), 메모리, 입출력장치(I/O) 등의 효율적 관리를 담당한다...