분류 전체보기
[ KOCW 운영체제와 정보기술의 원리 | 반효경 ] CPU 스케쥴링
CPU-burst Time CPU-burst가 짧다는건 중간중간 I/O가 자주 끼어든다는 말. 이게 긴 경우도 있고 짧은 경우도 있다. 따라서 CPU 스케쥴링이 필요하다. CPU-burst가 짧다는 말은 사람이랑 자주 인터렉션을 하는 것. 이런 잡에 CPU를 늦게 넘겨주면 사람이 답답하다. 결정해야 하는 것 누구에게 CPU를 줄것인가 줬으면 계속 쓰게 할 것인가.중간에 뺏어올 수도 있게 할 것인가 비선점형 | nonpreemptive scheduling 선점형 | preemptive scheduling 만약 뺏지 않고 끝까지 CPU를 보장해야 한다면, CPU-burst가 긴 애들이 CPU를 넘겨받았을 때 지나치게 오랜 기다림이 된다. 스케쥴링 알고리즘의 평가 성능 척도를 통해 평가한다. 시스템 입장에서의..
[ SNU 강의 ] CPU Scheduling | 쉽게 배우는 운영체제 8,9주차
Resource preemtible resource 양보가 가능한 resource 한 프로세스가 점유한 상태에서 다른 프로세스에게 양보할 수 있는 자원 CPU (양보해야 할 시점이 됐을 때 state를 안전하게 대피시키고 양보 memory nonpreemtible resource 한 프로세스가 점유하면 사용을 마칠 때까지 다른 프로세스에게 양보할 수 없는 자원 프린터 CPU Burst 스케쥴링을 하려고 해도 기준(단위)가 있어야 한다 이를 정한 것이 CPU Burst 유저 프로그램이 일을 수행하다가 blocking system call을 한다 그러면 io에서 wait를 하게 됨 wait를 하는 동안 waiting 상태에 가있다 원하는 상태가 오게 되면 다시 프로그램을 수행시킴. 이렇게 프로그램의 수행을 ..
[ 백준 16197 해설 ] ( python ) 두 동전
📚 두 동전 문제 N×M 크기의 보드와 4개의 버튼으로 이루어진 게임이 있다. 보드는 1×1크기의 정사각형 칸으로 나누어져 있고, 각각의 칸은 비어있거나, 벽이다. 두 개의 빈 칸에는 동전이 하나씩 놓여져 있고, 두 동전의 위치는 다르다. 버튼은 "왼쪽", "오른쪽", "위", "아래"와 같이 4가지가 있다. 버튼을 누르면 두 동전이 버튼에 쓰여 있는 방향으로 동시에 이동하게 된다. 동전이 이동하려는 칸이 벽이면, 동전은 이동하지 않는다. 동전이 이동하려는 방향에 칸이 없으면 동전은 보드 바깥으로 떨어진다. 그 외의 경우에는 이동하려는 방향으로 한 칸 이동한다.이동하려는 칸에 동전이 있는 경우에도 한 칸 이동한다. 두 동전 중 하나만 보드에서 떨어뜨리기 위해 버튼을 최소 몇 번 눌러야하는지 구하는 프로그..
[ 백준 15989 해설 ] ( python ) 기타리스트
📚 기타리스트 문제 Day Of Mourning의 기타리스트 강토는 다가오는 공연에서 연주할 N개의 곡을 연주하고 있다. 지금까지 공연과는 다른 공연을 보여주기 위해서 이번 공연에서는 매번 곡이 시작하기 전에 볼륨을 바꾸고 연주하려고 한다. 먼저, 공연이 시작하기 전에 각각의 곡이 시작하기 전에 바꿀 수 있는 볼륨의 리스트를 만들었다. 이 리스트를 V라고 했을 때, V[i]는 i번째 곡을 연주하기 전에 바꿀 수 있는 볼륨을 의미한다. 항상 리스트에 적힌 차이로만 볼륨을 바꿀 수 있다. 즉, 현재 볼륨이 P이고 지금 i번째 곡을 연주하기 전이라면, i번 곡은 P+V[i]나 P-V[i] 로 연주해야 한다. 하지만, 0보다 작은 값으로 볼륨을 바꾸거나, M보다 큰 값으로 볼륨을 바꿀 수 없다. 곡의 개수 N과..
[ 백준 15989 해설 ] ( python ) 1, 2, 3 더하기 4
📚 1, 2, 3 더하기 4 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 4가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 합을 이루고 있는 수의 순서만 다른 것은 같은 것으로 친다. 1+1+1+1 2+1+1 (1+1+2, 1+2+1) 2+2 1+3 (3+1) 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 10,000보다 작거나 같다. 출력 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. 예제 입력 1 복사 3 4 7 10 예제 출력 1 복사 4 8..
[ 백준 1890 해설 ] ( python ) 점프
📚 점프 문제 N×N 게임판에 수가 적혀져 있다. 이 게임의 목표는 가장 왼쪽 위 칸에서 가장 오른쪽 아래 칸으로 규칙에 맞게 점프를 해서 가는 것이다. 각 칸에 적혀있는 수는 현재 칸에서 갈 수 있는 거리를 의미한다. 반드시 오른쪽이나 아래쪽으로만 이동해야 한다. 0은 더 이상 진행을 막는 종착점이며, 항상 현재 칸에 적혀있는 수만큼 오른쪽이나 아래로 가야 한다. 한 번 점프를 할 때, 방향을 바꾸면 안 된다. 즉, 한 칸에서 오른쪽으로 점프를 하거나, 아래로 점프를 하는 두 경우만 존재한다. 가장 왼쪽 위 칸에서 가장 오른쪽 아래 칸으로 규칙에 맞게 이동할 수 있는 경로의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 게임 판의 크기 N (4 ≤ N ≤ 100)이 주어진다. 그 다음 N개 줄에..
[ 백준 1062 해설 ] ( python ) 가르침
📚 가르침 문제 남극에 사는 김지민 선생님은 학생들이 되도록이면 많은 단어를 읽을 수 있도록 하려고 한다. 그러나 지구온난화로 인해 얼음이 녹아서 곧 학교가 무너지기 때문에, 김지민은 K개의 글자를 가르칠 시간 밖에 없다. 김지민이 가르치고 난 후에는, 학생들은 그 K개의 글자로만 이루어진 단어만을 읽을 수 있다. 김지민은 어떤 K개의 글자를 가르쳐야 학생들이 읽을 수 있는 단어의 개수가 최대가 되는지 고민에 빠졌다. 남극언어의 모든 단어는 "anta"로 시작되고, "tica"로 끝난다. 남극언어에 단어는 N개 밖에 없다고 가정한다. 학생들이 읽을 수 있는 단어의 최댓값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 단어의 개수 N과 K가 주어진다. N은 50보다 작거나 같은 자연수이고, K는 26보다..
[ 한 번에 모아보는 프론트엔드 면접 질문 ] 네트워크
TCP와 UDP에 대해 설명해주세요 OSI 7계층에서 전송계층(Transport layer)에 속하는 데이터 전송 프로토콜입니다. TCP가 뭔가요? TCP는 Transmission Control Protocol의 약자로 데이터가 반드시 전달되는 것을 보장하는 프로토콜로 연결지향, 높은 신뢰성, 전 이중 방식, 바이트 스트림 등의 특징이 있습니다. 연결지향(Connection-oriented) | 2개의 호스트가 통신을 하기 전 연결이 이루어져야 한다 높은 신뢰성(Reliability)와 순차전송(in-order-delivery)를 보장 - 흐름 제어(Flow control)을 통해 송신자의 데이터 양을 조절한다 - 혼잡 제어(Congestion control)을 통해 네트워크 상황을 감지하고 송신자의 데..