2024/10 29

OSTEP 14장

이번 장에서는 UNIX 메모리 관리 인터페이스에 대해 논의여기서 메모리란 사용자 주소 공간을 의미메모리 공간의 종류C 프로그램이 실행되면, 두 가지 유형의 메모리 공간이 할당됨스택 메모리 - 할당과 반환이 컴파일러에 의해 암묵적으로 이루어짐 스택 메모리를 자동 메모리라고도 부름// func()가 호출되면 func를 위한 스택 프레임이 생성되고 프레임 내부에 x를 위한 공간을 할당 // func() 함수가 종료되면 스택 메모리에 있던 할당된 스택 프레임 전체가 반환됨 void func() { int x; }힙 메모리 - 오랫동안 값이 유지되어야 하는 변수를 위한 메모리 모든 할당과 반환이 프로그래머에 의해 명시적으로 처리 됨// 스택 메모리에 func 스택 프레임과 px를 위한 메모리 공간이 확보 됨..

운영체제(OSTEP) 2024.10.19

파일 디스크립터

유닉스 혹은 리눅스 시스템에서 프로세스가 특정 리소스를 다룰 때 사용하는 개념 즉, 특정 리소스에 접근하기 위한 추상적인 키를 말한다. 프로세스는 파일 디스크립터만으로 파일에 접근할 수 있다.파일 디스크립터를 사용함으로써 파일 시스템의 복잡성을 신경 쓰지 않고도 파일을 다룰 수 있다.** 파일 디스크립터 자체가 테이블 인덱스 STDIN_FILENO - 0 // 표준 입력STDOUT_FILENO - 1 // 표준 출력STDERR_FILENO - 2 // 표준 에러 파일 디스크립터는 3번부터 부여 사용하는 이유1. 다양한 유형의 I/O 리소스를 동일한 인터페이스로 다룰 수 있음- read(), write() 같은 함수를 사용하여 리소스에 쉽게 접근 2. 커널의 효율적인 관리 - 커널이..

OSI 7 계층

OSI는 모든 종류의 컴퓨터 시스템 간 통신을 가능하게 하는 네트워크 시스템 설계를 위한 계층 구조이다. 서로 다른 시스템 간의 통신을 원할하게 하는데 목적이 있다.OSI 모델은 프로토콜이 아니다. - 각 계층은 고유한 기능과 책임을 가지고 있음 // 한 계층의 내부 동작이 변경되어도 다른 계층에 영향 안 줌- 인터페이스를 통해 각 계층은 인접한 상위/하위 계층만 직접적으로 상호작용함 - 각 계층은 하위 계층의 복잡성을 숨기고, 상위 계층에 간단한 인터페이스를 제공 - 각 계층을 독립적으로 개발, 수정, 최적화 가능 - 각 계층은 논리적으로 연결되어 통신을 수행 실제 전송은 물리 계층에서만 이루어지지만, 각 계층은 동일한 계층만 보기 때문에 같은 동일한 계층과 통신하는 것 처럼 동작함 응용 계층 ..

HTTP 메서드

HTTP 메서드클라이언트가 서버에 요청할 때 필요한 행위 조회, 등록, 수정, 삭제 GET - 리소스 조회POST - 요청 데이터 처리, 주로 등록에 사용 PUT - 리소스를 대체, 해당 리소스가 없으면 생성PATCH - 리소스 부분 변경DELETE - 리소스 삭제기타 HTTP 메서드HEAD - GET과 동일하지만 메시지 부분을 제외하고 상태 줄과 헤더만 반환 (BODY 제외하고 보냄)OPTIONS - 대상 리소스에 대한 통신 가능 옵션(메서드)을 설명(주로 CORS에서 사용)CONNECT - 대상 자원으로 식별되는 서버에 대한 터널을 설정TRACE - 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행 GET 메서드리소스 조회 ( 특정 데이터를 줘 )서버에 전달하고 싶은 데이터는 query(쿼..

HTTP 기본 개념

HTTPHyperText Transfer Protocol텍스트 기반의 프로토콜- HTTP 요청과 응답의 헤더 부분은 여전히 텍스트- HTTP 바디 부분은 다양한 형식의 데이터를 포함할 수 있음- HTML, TEXT, 이미지, 음성, 영상 파일, JSON, XML 등등- 거의 모든 형태의 데이터 전송 가능 - 클라이언터의 요청과 서버의 응답으로 구성된 방식 - 서버간에 데이터를 주고 받을 때도 대부분 HTTP 사용 TCP - HTTP/1.1, HTTP/2 UDP - HTTP/3HTTP 특징1. 클라이언트 서버 구조2. 무상태 프로토콜3. 비연결성4. 확장 가능 (커스텀 헤더)클라이언트 서버 구조- Request, Response 구조- 클라이언트가 요청을 보내고 서버가 응답을 보내는 구조 서버는 비즈니..

TCP/IP, UDP

IP(Internet Protocol)인터넷 프로토콜 역할- 지정한 IP 주소에 데이터 전달- 패킷(Packet)이라는 통신 단위로 데이터 전달 출발지 IP - 나의 IP목적지 IP - 상대 IP1. 출발지, 목적지, 메시지 등을 패킷에 넣고 전송2. IP 프로토콜에 의해서 노드들을 거쳐 전송되게 됨3. 최종적으로 목적지 IP에 컴퓨터에 패킷이 도달하게 됨 4. 목적지 IP에 해당하는 컴퓨터도 동일한 방식으로 출발지 IP 컴퓨터에 응답 IP 프로토콜의 한계1. 비연결성 - 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 즉, 대상 서버가 패킷을 받을 수 있는 상태인지 모름 2. 비신뢰성 - 중간에 패킷이 사라지는 경우 - 패킷이 순서대로 안 오는 경우 3. 프로그램 구분 - 같은 IP를 사용..

프록시 서버

프록시란 프로토콜에 있어서 대리 응답 등에서 사용하는 개념이다.프록시 서버클라이언트와 서버 사이에 존재하며, 중계기로서 대리로 통신을 수행하는 것을 프록시라고 함 중계 기능을 하는 주체를 프록시 서버라고 함프록시 서버 종류포워드 프록시 (Forward Proxy)클라이언트와 서버 사이에 위치하여 요청을 중계하며, 요청과 응답은 Proxy Server를 거친다.클라이언트는 목적지 서버에 요청을 보내고, 프록시 서버는 이를 받아서 목적지 서버에 요청포워드 프록시 서버는 클라이언트 앞에 있음 특징1. 클라이언트 보안 - 클라이언트의 직접적인 인터넷 접속을 제한하여 보안 강화 Ex) 불법 사이트에 접속하는 것을 막음 2. 캐싱 - 프록시 서버를 캐시로 사용하여 동일한 요청을 보냈을 때 프록시 서버에 저장..

BSD 소켓

버클리 대학에서 UNIX 4.2 BSD 커널에서 사용하기 위해 만든 소켓 인터페이스TCP/IP 기반 네트워크 통신 // TCP/IP 뿐만 아니라 다양한 네트워크 프로토콜을 지원현재 네트워크 프로그래밍의 표준이 됨 -> 소켓이라고 하면 일반적으로 BSD 소켓을 의미** 엔드포인트 : 네트워크 통신을 할 수 있는 한 쪽 끝을 의미 Ex) www.quilzy.shop:8080, www.quizly.shop:3004 IP 주소 : 네트워크상의 기기를 식별할 때 사용 Ex) 클라이언트1, 클라이언트2, 퀴즐리 서버 포트 번호 : 특정 기기 내의 특정 프로세스나 서비스 식별 Ex) 좌표를 위한 소켓, 채팅을 위한 소켓, 소켓 인터페이스란응용 계층과 전송 계층 사이의 인터페이..

OSTEP 8장

MLFQ (멀티 레벨 피드백 큐)MLFQ가 해결하려는 두 가지 기본적인 문제1. 짧은 작업을 먼저 실행시켜 반환 시간을 최적화 운영체제는 실행 시간을 미리 알 수 없으므로 어려움 2. 응답시간을 최적화하여 응답이 빠른 시스템이라는 느낌을 받도록 하기 응답시간이 짧아지면 반환시간은 최악임 MLFQ: 기본규칙여러 개의 큐로 구성되며, 각각 다른 우선순위가 배정된다. 실행 준비가 된 프로세스는 여러 개의 큐 중 하나의 큐에 존재한다. **MLFQ는 실행할 프로세스를 결정하기 위해 우선순위를 사용즉, 높은 우선순위 큐에 존재하는 작업이 선택된다. 각 큐는 라운드 로빈 스케줄링 알고리즘을 사용한다. ** MLFQ 스케줄링의 핵심은 우선순위를 정하는 방식 // 작업의 실행을 관찰하고 그에 따라 우선순위 지정각 ..

운영체제(OSTEP) 2024.10.11

OSTEP 6장

CPU 가상화 어떻게 구현 ??-> CPU 시간을 나눠씀으로써 가상화를 구현 CPU 가상화를 구현하기 위해 두 가지를 해결해야 함 1. 성능 저하 // 과도한 오버헤드로 인한 성능 저하2. 제어 문제 // 응용 프로그램이 컴퓨터를 마음대로 제어해서는 안 된다.기본원리 : 제한적 직접 실행프로그램을 CPU 상에서 직접 실행하는 것을 의미 1. 프로세스 목록에 항목을 추가2. 프로그램 메모리 할당3. 메모리에 프로그램 탑재4. argc/argv를 위한 스택 셋업5. 레지스터 내용 삭제6. call main() 실행 main() 실행 main에서 return 명령어 실행7. 프로세스 메모리 반환8. 프로세스 목록에서 항목 제거 ** 몇 가지 문제점..

운영체제(OSTEP) 2024.10.10