CS(49)
-
[운영체제] 프로세스 관리
1. 프로세스란? 프로세스 : 실행 중인 프로그램, 디스크에 실행파일 형태로 존재하던 프로그램이 메모리에 올라가 실행되기 시작하면 비로소 프로세스가 된다. 프로세스의 문맥(context) : 프로세스가 현재 어떤 상태에서 수행되고 있는지 정확히 규명하기 위해 필요한 정보, 그 프로세스의 주소 공간(코드, 데이터, 스택)과 레지스터에 어떤 값이 있었는지, 시스템 콜을 통해 커널에서 수행한 일의 상태, 커널이 프로세스에 관해 관리하는 각종 정보 포함 ① 하드웨어 문맥 : CPU의 수행 상태를 나타내는 것, 프로그램 카운터 값과 각종 레지스터에 저장하고 있는 값 ② 프로세스의 주소 공간 : 코드, 데이터, 스택에 저장되고 있는 값 ③ 커널상의 문맥 : OS는 프로그램이 프로세스가 되었을 때 프로세스를 관리하기..
2022.08.05 -
[운영체제] 프로그램의 구조와 실행
1. 프로그램의 구조와 인터럽트 프로그램이 CPU에서 명령을 수행하려면 해당 명령을 담은 프로그램의 주소 영역이 메모리에 올라가 있어야한다. 프로그램의 주소 영역은 크게 코드(code), 데이터(data), 스택(stack) 영역으로 구분된다. 코드 영역 : 작성한 프로그램 함수들의 코드가 CPU에서 수행할 수 있는 기계어 명령 형태로 변환되어 저장되는 부분 데이터 영역 : 전역 변수 등 프로그램이 사용하는 데이터를 저장하는 부분 스택 영역 : 함수가 호출될 때 호출된 함수의 수행을 마치고 복귀할 주소 및 데이터를 임시로 저장하는 데에 사용되는 공간 스택 영역은 함수의 호출에서 그 역할이 드러난다. X 함수를 수행하는 도중 Y 함수를 호출해야 한다고 가정했을 때, X 함수에서 Y 함수를 호출한 지점을 스..
2022.08.05 -
[운영체제] 컴퓨터 시스템 (Computer System)
1. 컴퓨터 시스템의 구조 내부 장치 : CPU, 메모리 / 외부 장치 : 네트워크 디바이스, 키보드, 마우스, 모니터, 디스크 외부 장치에서 내부 장치로 데이터를 읽어와(입력, input) 각종 연산을 처리한 후, 그 연산의 결과를 다시 내부 장치에서 외부 장치로 내보내는(출력, output) 방식의 흐름이다. 메모리 및 입출력 장치의 각 하드웨어 장치에는 '컨트롤러'라는 것이 붙어 있다. 이 컨트롤러는 컴퓨터 전체를 제어하는 CPU(중앙처리장치)가 있듯, 각 하드웨어 장치마다 존재하면서 이를 제어하는 작은 CPU라고 볼 수 있다. 운영체제의 역할은 여러 프로그램의 동시에 수행되는 시스템을 위한 것이다. 그리고, 이 프로그램들이 실행되기 위해서는 컴퓨터의 메모리 위에 올라가 있어야 한다. 이러한 자원들..
2022.08.04 -
[네트워크] IP fragmentation, reassembly
IP 단편화(fragmentation) network links는 MTU(Max Transfer Size)를 가진다. 링크 계층 프로토콜마다 다른 링크 타입과 MTU를 가지므로 네트워크는 큰 IP datagram을 분할할 필요성이 있다. 이러한 IP datagram을 여러 조각의 datagram으로 쪼개서 전송하고 최종 목적지에서 재결합(reassembly) 된다. IP 헤더를 통해 본래 하나의 datagram이었는지 구분하고 순서를 확인하게 된다. 4000byte datagram을 3개의 datagram으로 쪼개서 전송했다고 하자. 각 datagram은 헤더가 20byte씩을 차지한다. 즉 처음 datagram도 헤더가 20byte를 차지하므로 data field는 3980이다. 또한 MTU는 1500..
2022.06.27 -
[네트워크] DNS
등장 배경 네트워크 안에서 호스트를 식별하기 위한 목적으로 IP 주소를 사용하는데, 사람의 경우 숫자보다 문자를 사용하는 것이 더 편하므로 도메인 이름을 이용해 호스트를 식별한다. 도메인 이름을 사용하는 경우에도 최종적으로 IP 주소를 알고 있어야 상대방과 연결이 가능하므로, 네트워크에서 도메인이나 호스트 이름을 숫자로 된 IP 주소로 해석해 주는 TCP/IP 네트워크 서비스인 DNS가 등장했다. DNS란? 정의 TCP/IP 네트워크 상에서 사람이 기억하기 쉽게 문자로 만들어진 도메인을 숫자로 된 IP 주소로 바꾸는 서버를 DNS라고 한다. 포트 번호 UDP와 TCP 모두 53번 포트를 사용한다. DNS 서버에 질의를 보낼 때 UDP를 사용하고, Zone Transfer (영역 전송)과 512 B..
2022.06.26 -
[네트워크] TCP 혼잡제어(congestion control)| AIMD, Slow Start | TCP Reno, Tahoe
TCP 혼잡 제어란? 혼잡(congetion)하다는 것은 너무 많은 source가 너무 많은 data를 너무 빨리 전송해 네트워크가 이를 처리하지 못하는 상태를 말한다. 조금 더 자세히 설명하자면 데이터의 양이 수신 측에서 처리할 수 있는 양을 초과하게 되면 송신 측에서는 수신 측에서 처리하지 못한 데이터를 손실 데이터로 간주하고 계속 재전송하게 되므로 네트워크가 더욱더 혼잡하게 된다. 이러한 혼잡 상태를 제어하는 것을 혼잡 제어라고 한다. TCP 혼잡 제어의 여러 가지 방법을 알아볼 것인데, 그전에 TCP에 대해 잘 모르겠다면 다음 포스팅을 참고하자. [네트워크] TCP란? | TCP의 특징 | TCP RDT | 3-way handshake TCP란? TCP(Transmission Control Pro..
2022.06.26