WIL 17

OS 지식

OS의 일반적인 작동 원리운영 체제는 컴퓨터 하드웨어와 소프트웨어 간의 중재자 역할을 하며, 시스템 자원을 효율적으로 관리하고 사용자와 애플리케이션이 이를 쉽게 사용할 수 있도록 도와줍니다.운영 체제의 주요 기능은 다음과 같습니다:프로세스 관리: 운영 체제는 여러 프로그램이 동시에 실행될 수 있도록 CPU 시간을 할당하고, 각 프로세스 간의 자원 충돌을 방지하며, 문맥 전환을 통해 효율적으로 멀티태스킹을 지원합니다.메모리 관리: 운영 체제는 각 프로세스에 필요한 메모리를 할당하고, 가상 메모리 기법을 통해 물리적 메모리를 효율적으로 사용합니다. 이를 통해 메모리 부족 시에도 프로그램이 원활히 실행될 수 있도록 합니다.파일 시스템 관리: 운영 체제는 데이터를 파일 단위로 저장하고, 이를 디렉터리 구조로 관..

WIL/스터디 2024.08.27

인터넷 지식

인터넷의 작동 원리먼저, 인터넷에 연결된 각 장치는 고유한 IP 주소를 가지고 있으며, 사용자가 웹사이트에 접근할 때는 도메인 이름을 통해 IP 주소를 찾아냅니다. 이 과정은 DNS 서버를 통해 이루어집니다.데이터는 작은 패킷으로 나뉘어 전송되며, 각 패킷은 라우터를 통해 목적지까지 전달됩니다. 이때 TCP/IP 프로토콜이 데이터를 신뢰성 있게 전달하는 역할을 합니다.사용자가 웹사이트를 요청하면, 클라이언트는 서버에 HTTP 또는 HTTPS 요청을 보내고, 서버는 요청에 따라 웹 페이지나 데이터를 응답합니다. 이러한 모든 과정은 ISP를 통해 이루어집니다. HTTP란?HTTP(HyperText Transfer Protocol)는 웹에서 클라이언트와 서버 간에 데이터를 주고받기 위한 표준 프로토콜입니다. ..

WIL/스터디 2024.08.27

Thread & Process

Alarm Clock최초에 Busy Waiting으로 구현. 이는 특정 조건이 충족될 때까지, 프로세스나 스레드는 루프를 돌며 해당 조건을 지속적으로 확인합니다. 이 과정에서 CPU는 계속해서 이 루프를 실행하게 되어, 해당 프로세스나 스레드가 CPU를 점유한 상태가 됩니다. 때문에 이러한 방식은 CPU 자원을 낭비하게 되고, 이를 Sleep Awake 방식으로 수정하게 됨.Thread Scheduler핀토스의 스케줄러는 Round Robin으로 구현되어 있습니다. 이는 중요도에 상관없이 모든 스레드를 번갈아가며 수행합니다. 이를 Priority Scheduler로 수정하고 Donation 기능을 넣는다던가 하는 방식으로 수정하게 됩니다. 저는 Extra 과제인 Multi Level Feedback Qu..

WIL/스터디 2024.08.25

Malloc Lab

Mallocmalloc은 지정된 크기만큼의 메모리를 할당하고 할당된 메모리의 시작주소를 반환한다.이 때, 할당된 메모리는 초기화되지 않기 때문에 그 위치에 저장된 값들이 남아 있을 수 있다. Calloccalloc은 malloc과 같이 메모리를 할당해주지만, 할당된 메모리의 값을 모두 0으로 초기화한다. Implicit Malloc (암시적)프로그래머가 직접 메모리 할당을 지시하지 않아도 컴파일러 혹은 런타임이 자동으로 메모리를 할당하는 경우. 보통 가비지 컬렉션이 있는 언어인 Java나 Python에서 객체를 생성할 때 명시적으로 메모리 할당을 하지 않아도 된다. 내부 단편화가 발생할 수 있고 속도가 상대적으로 느리다. Explicit Malloc (명시적)프로그래머가 직접 메모리 할당을 지시하고, 할..

WIL/스터디 2024.08.25

Virtual Memory

가상메모리란 무엇인가?물리 메모리(RAM)에 한계가 있기 때문에 이를 보완하기 위해 만든 것이 가상 메모리입니다. HDD나 SSD의 자원을 끌어다써서 메모리 공간을 추상화시켜 OS가 자신의 메모리가 마치 무한한 것처럼 사용할 수 있게 해줍니다. 1. 페이지페이지는 가상 메모리에서의 기본 단위입니다. 운영 체제는 각 프로세스에 가상 메모리 공간을 제공하며, 이 가상 메모리 공간은 일정한 크기의 페이지로 나뉩니다. 페이지는 프로세스가 사용하는 메모리 블록을 의미하며, 가상 주소 공간에서 특정 범위의 주소를 나타냅니다.2. 프레임프레임은 물리 메모리(RAM)에서의 기본 단위입니다. 물리 메모리는 프레임이라는 고정된 크기의 블록으로 나누어져 있으며, 각 프레임은 가상 메모리의 페이지와 매핑됩니다.3. 페이지 테..

WIL/스터디 2024.08.23

Pintos Extra Questions

1. %rip, %rsp 레지스터의 의미와 CPU 동작에서의 역할%rip (Instruction Pointer Register): %rip는 현재 실행 중인 명령어의 메모리 주소를 가리키는 레지스터입니다. 프로세서가 명령어를 실행할 때마다 %rip는 다음에 실행할 명령어의 주소로 업데이트됩니다. 명령어 실행이 완료되면 %rip는 자동으로 다음 명령어의 주소로 증가하거나, 점프(분기) 명령에 따라 특정 주소로 설정됩니다.%rsp (Stack Pointer Register): %rsp는 현재 스택의 최상단을 가리키는 레지스터입니다. 함수 호출 시, 함수의 리턴 주소나 지역 변수를 저장하기 위해 스택을 사용하게 되며, 이때 %rsp는 스택의 최상단을 관리합니다. PUSH 및 POP 명령어는 %rsp를 조작하여..

WIL/스터디 2024.08.22

Red-Black Tree Extra Questions

1. Segmentation Fault (Core dumped)"Segmentation Fault (Core dumped)"라는 에러 메시지는 프로그램이 허용되지 않은 메모리 영역에 접근하려고 할 때 발생합니다. 이 메시지는 다음과 같은 문제들로 인해 발생할 수 있습니다:잘못된 포인터 참조 (예: NULL 포인터 참조, 초기화되지 않은 포인터 사용)배열 범위를 초과한 접근이미 해제된 메모리 접근스택 오버플로우core dumped는 프로세스가 비정상 종료되었을 때, 시스템이 해당 시점의 메모리 상태를 파일로 저장했다는 의미입니다. 이 파일을 사용해 프로그램이 종료된 시점의 상태를 분석할 수 있습니다.2. Core dumped ?core 파일은 프로세스가 비정상 종료될 때 메모리의 상태를 덤프한 파일입니다...

WIL/스터디 2024.08.21