본문 바로가기

Computer Science9

[네트워크] URI와 웹 브라우저 요청 흐름 1. URI (Uniform Resource Identifier) Uniform : 리소스를 식별하는 통일된 방식 Resource : 자원. URI로 식별할 수 있는 모든 것(제한 없음) Identifier : 다른 항목과 구분하는데 필요한 정보 URI안에는 URL과 URN이 포함되어 있다. URL은 Uniform Resource Locator로, 리소스가 있는 위치를 지정하며 URN은 Uniform Resource Name으로, 리소스에 이름을 부여한다. 위치는 변할 수 있지만, 이름은 변하지 않는다. URN 이름만으로 실제 리소스를 찾을 수 있는 방법은 보편화되지 않았다. 1-1. URL 문법 URL은 위와 같은 형식으로 이루어져 있다. 1. scheme - scheme에는 주로 프로토콜을 사용한다... 2022. 3. 2.
[네트워크] 인터넷 네트워크(IP, TCP, UDP, PORT, DNS) 클라이언트와 서버는 수많은 노드로 연결된 복잡한 인터넷 망을 통해서 서로 메세지를 전송한다. 메세지가 수많은 노드를 거쳐서 목적지로 전송될 때 특정한 규칙을 통해 전송된다. 이를 이해하기 위해선 IP(인터넷 프로토콜)에 대해서 알아야 한다. IP(Internet Protocol 인터넷 프로토콜) 1. 역할 - 지정한 IP 주소(IP Address)에 데이터를 전달한다. - 패킷(Packet)이라는 통신 단위로 데이터를 전달한다. 2. IP 패킷 정보 IP 패킷 정보에는 출발지 IP, 목적지 IP, 전송 데이터가 포함된다. - 클라이언트 패킷 전달 : IP 패킷을 만들어서 던진다. 노드끼리 이 패킷을 전달하다가 최종적으로 목적지에 다다른다. - 서버 패킷 전달 : 최종 목적지에서 잘 받았다면 똑같이 IP .. 2022. 2. 25.
[OS] 프로세스 관리 (2) 1. fork() 시스템콜 fork()는 새로운 프로세스를 만들어달라는 요청이다. fork를 하게 되면 fork가 이루어진 그다음 시점부터 자식 프로세스가 실행을 하게 된다. 그 이유는, 자식 프로세스가 부모 프로세스의 context(정확히는 Program Counter)를 복제해서 main함수의 시작 부분이 아닌, pid = fork(); 부분부터 실행해야 하기 때문이다. 2. exec() 시스템콜 exec()는 어떤 프로그램을 완전히 새로운 프로세스로 태어나게 하는 역할을 한다. exec를 실행하면 main 함수 처음부터 돌아가 실행하게 된다. 그러나 반드시 자식 프로세스를 만들어서 exec를 해야 하는 것은 아니다. 즉, 위 코드에서 pid = fork(); 부분이 없어도 된다. 3. wait() .. 2021. 12. 16.
[OS] 프로세스 관리 (1) - 부모 프로세스(Parent Process)가 자식 프로세스(Children Process)를 생성한다. - 생성하는 방법으로는, 보통 복제 생성을 한다. 부모 프로세스에는 주소 공간이 있다. 그 주소 공간을 자식 프로세스가 그대로 복제한다(PCB와 자원들). 복제한 곳에 새로운 프로그램을 덮어 씌운다. 복제 생성은 fork 시스템콜의 역할이다. 복제한 후 다른 프로그램으로 덮어 쓰이는 것은 exec 시스템콜의 역할이다 - 프로세스들은 트리를 형성한다. - 프로세스가 실행기 되기 위해선 자원(CPU, 메모리)이 필요하다. 이 자원은 운영체제로부터 받으며, 부모와 자식이 공유하는 경우가 있다. - 프로세스가 실행될 때 부모와 자식이 공존하며 실행하는 모델이 있고, 자식을 하나 생성 후 그 자식이 종료(t.. 2021. 12. 2.
[OS] 프로세스 (2) 1. Thread란 프로세스 내부에 CPU 수행 단위가 여러 개 있는 경우를 말한다. 프로세스 하나 당 code, data, stack으로 이루어진 주소 공간이 만들어진다. (조금 더 자세한 내용은 링크로) 프로세스 하나를 관리하기 위해 운영체제 내부에 프로세스의 상태 등을 나타내는 PCB가 있다. 쓰레드들은 프로세스 하나에서 서로 공유할 수 있는 것들은 최대한 공유한다. 공유하는 것들(task) : 메모리 주소 공간, 프로세스 상태, 프로세스가 사용하는 각종 자원 (code section, data section, OS resource) 별도로 갖는 것 : CPU 수행과 관련된 정보들(PC, 레지스터, 스택) 즉, 쓰레드는 PC, register set, stack space로 구성되어 있다. 2. T.. 2021. 12. 1.
[OS] 프로세스 (1) 1. 프로세스란 실행 중인 프로그램을 뜻한다. 2. 프로세스의 문맥 프로세스가 실행이 시작되면, 프로세스만의 독자적인 주소 공간을 형성한다. 이 프로세스가 CPU를 얻게 되면 PC(Program Counter)라는 레지스터가 이 프로세스의 code 어느 한 부분을 가리키게 되고, 매 순간 instruction을 하나씩 읽어서 CPU 안으로 불러들인다. 레지스터에 어떤 값을 넣은 뒤 ALU(산술논리 연산장치)에서 어떤 연산을 하고 그 결과를 레지스터에 저장하거나 바깥의 메모리에 저장하는 과정이 발생한다. 이 과정이 반복되는 중, 어느 시점에 프로세스가 어디까지 와 있는가를 규명하는데 필요한 요소를 '프로세스의 문맥' 이라 한다. 이러한 프로세스의 문맥을 나타내기 위해서는 Program Counter가 어디.. 2021. 11. 30.