CS & Network/운영체제(OS) & 컴퓨터구조

[운영체제(OS)] 메모리관리 - 주소바인딩, Contiguous allocation 그리고 MMU 란?

지난 시간까지 살펴봤던 멀티프로그래밍에서는 다른 프로세스/쓰레드 끼리 통신을 하게 되고 공유자원을 사용하다 보니 문제점도 많았고 그에 대한 해결책을 살펴봤었습니다. 이번 시간부터는 메모리에 대해서 하나하나씩 정리를 해보려고 합니다. 0. 메모리란? 먼저 메모리 관리란 물리적 주소(Physical Address)를 갖는 메모리 공간에서 여러 개의 프로세스를 어떻게 같이 돌릴 것인가에 대한 관리입니다. 그렇다면 물리적 주소란 무엇일까요? 한마디로 메모리 공간에서의 위치이죠. 우리는 '메모리를 엄청 잡아먹네, 메모리 몇이야?'라는 말을 많이 들어봤을 겁니다. 익히 들어 알고 있는 RAM이란 용어도 메모리에 관한 것이죠. 추상적으로 '프로그램을 실행시키면 실행에 필요한 데이터들이 메모리에 올라가면서 실행되는 것..

2022.01.22 게시됨

자료구조 & 알고리즘/백준(Baekjoon)

[백준] 2589(파이썬) - 보물섬

https://www.acmicpc.net/problem/2589 2589번: 보물섬 첫째 줄에는 보물 지도의 세로의 크기와 가로의 크기가 빈칸을 사이에 두고 주어진다. 이어 L과 W로 표시된 보물 지도가 아래의 예와 같이 주어지며, 각 문자 사이에는 빈 칸이 없다. 보물 지도의 www.acmicpc.net 이 문제를 처음읽고 든 생각은 bfs인데 어떻게 지점간의 거리를 구하고 그 거리가 최대일 때를 구해야할까? 였습니다. 조건이 보통은 1000, 1000을 주는데 50,50 으로 준 걸 보니 완전탐색을 이용해서 각 좌표마다 bfs를 실행해주면 되겠다 라는 생각을 했고, 문제를 풀었습니다. 이 문제에서 핵심은 cnt 를 다음 bfs 좌표로 넘어갈 때, +1 씩 해줘서 현재 지점에서 bfs를 마쳤을 때 가..

2022.01.21 게시됨

자료구조 & 알고리즘/백준(Baekjoon)

[백준]4811(파이썬) - 알약

https://www.acmicpc.net/problem/4811 4811번: 알약 입력은 최대 1000개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄이며, 병에 들어있는 약의 개수 N ≤ 30 가 주어진다. 입력의 마지막 줄에는 0이 하나 주어진다. www.acmicpc.net 이 문제는 꽤나 까다로웠던 문제입니다. 이 문제를 빠른 시간 내에 풀 수 있다면 DP관련 문제들은 웬만한 건 해결할 수 있겠다는 생각이 들었죠.먼저 DP로 푸는 문제인 거 같다! 라는 생각을 했고 DP문제를 푸는 과정을 정리해봤습니다. DP는 이전 결과가 다음결과에 영향을 미쳐야 합니다. DP를 풀 때 변수를 어떻게 정할지가 중요합니다. 이전 결괏값을 가져다 쓰기 위해서는 초기화가 중요합니다. 위 세 가지 조건을..

2022.01.17 게시됨

자료구조 & 알고리즘/백준(Baekjoon)

[백준]5014(파이썬) - 스타트링크

https://www.acmicpc.net/problem/5014 5014번: 스타트링크 첫째 줄에 F, S, G, U, D가 주어진다. (1 ≤ S, G ≤ F ≤ 1000000, 0 ≤ U, D ≤ 1000000) 건물은 1층부터 시작하고, 가장 높은 층은 F층이다. www.acmicpc.net 이 문제는 보자마자 BFS로 풀어야겠다는 생각이 들었습니다. 또 생각이 들었던 점은 뱀과 주사위 게임과 거의 유사한 유형이라는 점입니다. 이 문제의 핵심은 BFS 떠올렸어? 그리고 UP, DOWN을 어떻게 표현할래?라고 생각합니다. 이 부분만 인지를 했으면 문제 푸는 데는 어렵지 않았습니다. 한 가지, result를 -1로 초기화하지 않고 0으로 초기화한 뒤, result [s-1] = 0을 제외시키면 31 ..

2022.01.17 게시됨