전체 글 (236) 썸네일형 리스트형 [운영체제] CH5. CPU Scheduling(2) Scheduling Algorithms FCFS (First-Come First-Served) 요청한 순서대로 처리하는 단순한 알고리즘이다. Nonpreemptive scheduling이며, 비효율적인 알고리즘이다. Burst time이 긴 프로세스가 먼저 도착한다면, 짧은 프로세스들은 무작정 기다릴 수밖에 없다. Time-sharing system에서 interacitve job의 응답시간이 길어지기 때문에 좋은 스케줄링 기법이 아니다. 만약 burst time이 짧은 순서대로 들어온다면, FCFS는 프로세스의 순서에 따라 waiting time에 상당한 영향을 끼친다. 문제점 Convoy effect 이 발생한다. 한 프로세스를 기다리기 위해 여러 프로세스들이 떼지어(convoy) 기다리게 되는 현상.. [SWEA-9229][DFS] 한빈이와 Spot Mart - Java 한빈이라는 친구가 과자 두 봉지를 사서 가는데 들고 갈 수 있는 최대 무게를 구하는 문제입니다. N개 중에서 반드시 두 개를 선택해야 하므로 조합(Combination)을 이용해서 풀면 됩니다. import java.util.Arrays; import java.util.Scanner; public class Solution { static int[] snacks; static int[] selected; static int answer; static int M; private static void dfs(int cnt, int s) { if(cnt == 2) { int sum = Arrays.stream(selected).sum(); if(sum > M) return; answer = answer > s.. [운영체제] CH5. CPU Scheduling(1) CH5. CPU Scheduling CPU and I/O Bursts in Program Execution 모든 프로그램은 실행하면서 거치는 다음과 같은 일련의 path가 존재한다. 프로그램의path는 CPU를 사용하는 일과 I/O 요청에 대한 응답을 기다리는 일을 반복한다. CPU를 연속적으로 사용하면서 인스트럭션을 수행하는 단계를 CPU Burst이라고 부르고, I/O를 수행하는 단계를 I/O Burst라고 부른다. CPU-burst Time의 분포 I/O작업이 빈번한 작업(I/O bound job)이 있는 반면, CPU를 많이 사용하는 작업도 있다(CPU bound job). 사용자와 직접적으로 연관이 많은 interactive job에게 적절한 response를 제공해주어야 한다. 사용자가 너무 .. [SWEA-1223][스택] 계산기2 - Java 입력값으로 중위 표기식이 들어오면 이를 후위 표기식으로 바꾸고 계산하는 문제입니다. 스택을 이용해서 후위 표기식으로 바꾸고 계산까지 하면 됩니다. 괄호없이 덧셈과 곱셈만 있기 때문에 상대적으로 쉬운 문제랍니당. import java.util.Scanner; import java.util.Stack; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = 10; for(int test_case = 1; test_case [BOJ-14890][시뮬레이션] 경사로 - Java 문제 바로가기 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 삼성전자 코테 기출문제입니다.. 특별한 알고리즘을 요구하지는 않는 시뮬레이션 문젠데 이것저것 고려해야 할게 넘 많아서 예전에 못풀었다가 요번에 풀어씀다.. 꽤 빨리 풀긴 했는데 코드가 쪼까 지저분합니다 ㅜ package PS; import java.util.Scanner; class Main{ static int[][] map; static int L; static int ans = 0; static void solve(int[] line) { int start = lin.. [BOJ-3190][시뮬레이션] 뱀 - Java 문제 바로가기 3190번: 뱀 문제 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. www.acmicpc.net 뱀이 왔다갔다 하는 문제임니다. 문제에서 요구하는 조건만 잘 생각해서 코드를 짜면 됩니다.. import java.util.Deque; import java.util.LinkedList; import java.util.Scanner; class Dir{ int y; int x; Dir(int y, int x){ this.y = y; this.x = x; } } class Move{ int sec; char dir; Move(int sec, char dir.. [운영체제] CH4. Process Management CH4. Process Management 프로세스의 생성 (Process Creation) 부모 프로세스(Parent process)가 자식 프로세스(Child process)를 생성한다. 하나의 부모 프로세스는 여러 개의 자식 프로세스를 생성할 수 있다. 따라서 프로세스는 트리(계층 구조)를 형성한다. 프로세스는 자원(resources)를 필요로 하는데, 이는 운영체제로부터 받거나 부모 프로세스와 공유하는 형태를 갖는다. 자원의 공유 형태 부모와 자식이 모든 자원을 공유하는 모델 일부를 공유하는 모델 전혀 공유하지 않는 모델 - 일반적인 모델 일반적으로 부모와 자식프로세스는 서로 자원을 경쟁하는 관계가 된다. * Copy-On-Write(COW): Write가 발생했을 때 Copy를 하겠다. -> 내.. [SWEA-1225][큐] 암호생성기 - Java 앞에 놈을 빼서 일련의 연산을 해준 뒤 다시 뒤에 넣는 동작을 하기 때문에 기본적인 큐 활용 문제입니다. 규칙을 잘 생각해서 코드를 짜고 언제 반복문을 나갈지 조금만 생각해보면 쉽게 풀 수 있답니당. import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = 10; for(int test_case = 1; test_case 이전 1 ··· 24 25 26 27 28 29 30 다음