📌 공부한 내용 Memory leak 불필요한 메모리가 해제되지 않으면서 계속 점유되고 있는 상태. 정상적으로 메모리를 할당 받았다면 꼭 해주어야한다. // 예시 void function_with_allocates(){ float* a = malloc(sizeof(float)); } int main(){ function_with_allocates(); return; } Deadlock 교착 상태. 두 프로세스가 서로 점유하고 있는 자원을 서로 필요로 할 때 두 프로세스 모두 진행할 수 없는 상태. Starvation 스레드들에게 우선 순위를 부여해 공유 자원에 접근할 때 우선순위가 낮은 스레드가 소외되어 아무것도 하지 못하는 상태 → 해결책으로 Aging이라는 기법을 사용한다. 📌 - Thread Tim..
📌 공부한 내용 Implementing a sequential web proxy - 프록시 서버를 구성하여 들어오는 연결을 수락하고, 요청을 읽고 구문을 분석한다. - 웹 서버에 요청을 전달하고 서버의 응답을 읽고 해당 클라이언트에게 응답을 전달한다. 🌟 목적) HTTP 동작 및 소켓을 사용하여 네트워크 연결을 통신하는 프로그램을 작성하는 방법을 배우게 된다. Dealing with multiple concurrent requests - 다중 동시 연결을 처리할 수 있는 프록시로 업그레이드한다. 🌟 목적) 동시성 처리에 대한 이해를 높이게 되며, 시스템에서 중요한 개념 중 하나인 동시성을 다루는 방법을 배운다. Caching web objects - 최근 액세스한 웹 콘텐츠의 간단한 메인 메모리 캐시를 ..
📌 - fork()? - 함수를 호출한 프로세스를 복사하는 기능 - 원래 진행되던 프로세스는 부모, 복사된 프로세스를 자식이라고 한다. - fork() 함수는 프로세스 id, 즉 pid를 반환하는데 자식이라면 0이 반환 된다. 1️⃣ - 예시 1 - fork가 자식프로세스에서는 0을 반환하기 때문에 x=2를 출력하고 종료 #include #include #include int main(){ pid_t pid; int x = 1; pid = fork(); if(pid == 0){ /*Child*/ printf("child: x=%d\n", ++x); exit(0); } /*Parent*/ printf("parent: x=%d\n", --x); exit(0); } 2️⃣ - 예시 2 - 중첩 fork() i..
https://www.acmicpc.net/problem/11779 11779번: 최소비용 구하기 2 첫째 줄에 도시의 개수 n(1≤n≤1,000)이 주어지고 둘째 줄에는 버스의 개수 m(1≤m≤100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스 www.acmicpc.net 📌 - 처음 생각한 풀이 도시와의 거리 = 시작지점을 제외하고는 전부 int 최댓값 초기화 , 이전도시 정보 배열 초기화 인접리스트를 이용해서 리스트에 인접한 도시와 비용을 객체로 추가 bfs로 도시들을 방문 - 비용이 최소일 때만 업데이트 - 업데이트 할 때 그 비용은 dp배열에 저장하고 해당도시를 방문하기 전 도시를 result배열에 저장 result 배열을 ..
📌 - 가상메모리(VM)란? 실제 메모리 크기와 관계없이 메모리를 이용할 수 있도록 가상의 메모리 주소를 사용하는 방법 - 가상메모리는 한 개의 깔끔한 메커니즘을 사용해서 세 개의 중요한 기능을 제공한다. 메인 메모리 내 활성화 영역만 유지하고, 데이터를 디스크와 메모리 간의 필요에 따라 전송하는 방법을 사용 각 프로세스에 통일된 주소공간을 제공함으로 메모리를 단순화 각 프로세스의 주소공간을 다른 프로세스에 의한 손상으로부터 보호 📌 - 왜 알아야 하는가?? 현재 프로그래머들이 가상메모리에 대해 개입하지 않아도 조용하고 자동으로 잘 동작하는데, 왜 이것을 이해해야 하는 것일까?? 1 ) 가상메모리가 중심이다. - 가상메모리는 모든 컴퓨터 수준에 스며들어 있으며, 어셈블러, 링커, 로더, 공유 객체, 파일..
https://www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net 📌- 풀이 빙산 문제에서 빙산이 녹는 방식처럼 1초마다 먼지를 퍼뜨린다. 공기 청정기의 화살표 방향으로 밀어서 먼지를 없앤다. 단순 구현으로 문제를 해결할 수 있다. 방법이 여러가지가 있겠지만 내가 푼 방식은 먼지들을 미는 느낌으로 문제를 해결하는 것이 아니라 공기청정기에서 역으로 먼지를 당긴다고 생각하고 풀었다. 공기청정기로 시작해서 다시 공기청정기인 [-1]이 나올때까지 무한루프를 돌면서 청..