Computer Science

·Computer Science
폰노이만 구조에서 컴퓨터를 구성하는 기본 골격은 CPU, 메모리, 디스크이다. 추가적으로 I/O 장치까지 있다면 기본적인 컴퓨터 구조가 될 것이다. 이중 CPU 는 연산을 수행하고, 기억 장치에 있는 명령어들을 적재하고 수행하는 부품이다. CPU가 동작하는 것을 간단히 살펴보면 다음 그림과 같다. Memory에서 수행할 다음 명령어를 CPU로 적재해야 한다. PC (Program Counter)는 Fetch할 명령어 주소를 가지고 있다. 프로세스는 PC가 가리키는 주소에 있는 명령어를 가져오면서 PC값을 증가시킨다. 명령어가 CPU로 적재되는 것을 Fetch라고 하는데 CPU와 Memory는 Bus로 연결되어 있다. 가져온 현재 명령어는 IR(Instruction Register)에 임시 저장된다. 로드..
인터넷 쇼핑몰이나 구글, 네이버 등 웹 사이트에 로그인을 하면 홈페이지에서 다른 페이지로 넘어가는 것처럼 새로운 요청을 보내도 로그인이 유지되는 것을 볼 수 있다. 당연한 것 처럼 보이지만, HTTP 프로토콜은 'Stateless' 한 특성을 가지고 있는 프로토콜이다. 서버는 통신이 끝나면 상태 정보를 유지하지 않는다. 원래대로라면 서버측에서는 요청을 보낸 클라이언트가 이전에 로그인 요청을 보낸 클라이언트와 동일한지 아닌지 상태 정보가 없으므로 모를 것이다. 이러한 Stateless한 특징을 보완하기 위해서, 로그인 기능을 구현할 때 가장 일반적인 방법으로 쿠키와 세션이 사용된다. 쿠키와 세션 없는 기존 HTTP 프로토콜 방식대로라면 구글에 로그인을 해서 Gmail, 구글 드라이브 등 다른 페이지로 이동..
ARP (Address Resolution Protocol) ARP 프로토콜이란 주소 해석 프로토콜이다. 네트워크 계층 (Layer3) 에서 사용하는 IP 주소를 물리 주소인 MAC 주소로 대응시켜주는 역할을 한다. 반대로 해당 MAC주소로 대응되는 IP 주소를 얻는 프로토콜은 RARP (Reverse Address Resolution Protocol) 이라고 한다. 그렇다면 왜 굳이 IP주소를 MAC 주소로 변환을 해주어야 할까 ? 두 단말 간 통신을 할 때는 결국 고유한 물리 주소인 MAC주소로 통신을 해야 하기 때문이다. MAC주소는 LAN카드에 할당되는 고유한 물리조소로 전세계에서 유일한 목적지 주소이기 때문이다. 다음은 동일한 네트워크 상에 존재하는 호스트들의 IP주소와 MAC주소를 확인하는 a..
서브넷 마스크 (Subnet Mask) 서브넷 마스크는 32bit로 표현된다. '0' 으로 표시되는 비트는 호스트를 나타내며 '1' 으로 표시되는 비트는 네트워크 부분을 나타낸다. IP 주소 체계에서 서브넷 마스크를 이용하여 네트워크 부분과 호스트 부분을 분리할 수 있다. IP 주소와 서브넷 마스크를 bit AND 연산하게 되면 네트워크 ID가 나오게 된다. 예를 들어, C class 에 해당하는 IP 주소 192.168.56.11 가 있다고 하자. C class의 기본 서브넷 마스크인 255.255.255.0과 AND 연산을 하면 다음과 같다. 사실 당연하게도 192.168.56.11의 네트워크 주소는 192.168.56.0 이지만, AND 연산을 수행하면 역시 네트워크 주소가 192.168.56.0이..
IP IP 란 Internet Protocol 의 약자이다. 인터넷에 연결되어 있는 장치들(host)을 식별할 수 있도록 부여되는 고유 주소이다. HTTP 메세지를 만들면 메세지를 송출하기 위해서 OS에 요청해서 송신해야 한다. 이때 URL에 있는 서버의 도메인 명에서 IP 주소를 조사해야 한다. OS에 송신을 요청할 때 도메인 명이 아니라 IP 주소로 수신자를 지정해야 하기때문이다. IP 주소는 네트워크 번호 + 호스트번호 이다. OO 동 OO 번지라는 주소가 있을 때 OO 동에 해당하는 것이 네트워크 번호이며 OO번지라는 상세주소가 각 장치들에 할당되는 호스트 번호가 된다. 서브넷이란 인터넷은 TCP/IP를 바탕으로 만들어 졌으며, TCP/IP는 서브넷이라는 작은네트워크 단위를 라우터에서 연결하여 전..
SSL 원래 웹에서 데이터는 평문 일반 텍스트 형태로 전송되었다. 이는 보안에 취약하다. 정보 보호, 인증, 데이터 무결성 보장을 위해 SSL이 등장했다. TLS TSL는 SSL3.0버전에서 이어진 것으로 SSL과 TSL를 혼용해서 부르기도 한다. (TSL라는 이름보다 SSL이라는 이름이 더 많이 사용되고 있다.) 따라서 설명에서는 SSL/TSL 작동을 동일하게 보고 설명하도록 하겠다. HTTPS 와 SSL HTTPS는 HTML을 전송하기 위한 통신 규약인 HTTP 프로토콜에서 Secure라는 의미의 S가 추가되었다. HTTP는 암호화 되지 않은 데이터를 전송하기 때문에 보안상 취약하며, 이를 보완하여 등장한 것이 HTTPS이다. HTTPS는 SSL 프로토콜 위에서 동작하는 프로토콜이라고 이해할 수 있다..
Critical Section Problem n개의 프로세스가 공유데이터를 동시에 사용하기를 원하는 경우 발생하는 문제 각 프로세스의에서 공유 데이터를 접근하는 코드를 critical section 이라고 한다. 하나의 프로세스가 critical section 에 있을 때 다른 모든 프로세스는 critical section에 들어갈 수 없어야 한다. Critical Section Problem을 해결하기 위한 조건 Mutual exclusion (상호 배타) : 한 프로세스가 critical section 부분을 수행하고 있다면, 다른 프로세스들은 그들의 criitical section 에 들어가지 않는다. 즉, critical section에 꼭 하나의 프로세스만이 진입할 수 있다는 조건이다. Prog..
Interrupt 현대의 운영체제는 인터럽트에 의해 구동된다라는 말이 있을 정도이다. 프로그램을 실행하는 도중에 예기치 않은 상황이 발생하는 경우, 실행을 중단하고 발생한 상황에 대한 처리가 먼저 필요하다고 CPU에게 요청하는 것이다. CPU는 Interrupt line 을 통해 Interrupt가 발생되었는지에 대해 안다. CPU는 한 명령을 수행한 후 interrupt line을 확인한다. Timer Interrupt 한 프로그램이 CPU를 독점하는 것을 방지하기 위해서 Timer라는 하드웨어는 Timer Interrupt를 사용한다. 예를들어 무한루프, while문과 같은 경우 프로그램이 종료되지 않을 것이고, I/O를 하지도 않을 것이다. 이렇게 한 프로그램이 CPU를 독점하게 된다면 다른 프로그..
minjiwoo
'Computer Science' 카테고리의 글 목록 (4 Page)