목록분류 전체보기 (255)
-
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bdHFcT/btrnu7JVfmL/hcKg6moRcplMc7zjMT9Re1/img.png)
# 주소 https://www.acmicpc.net/problem/2210 2210번: 숫자판 점프 111111, 111112, 111121, 111211, 111212, 112111, 112121, 121111, 121112, 121211, 121212, 211111, 211121, 212111, 212121 이 가능한 경우들이다. www.acmicpc.net # 문제 # 문제 해설 및 코드 리뷰 import java.util.HashSet; import java.util.Scanner; public class Main{ static int n; static int[][] arr; static int[] dx = {1, 0, -1, 0}; static int[] dy = {0, 1, 0, -1}; st..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Z21y9/btrnpOKcw8g/AiUy27ZG0YLG0XtYfMlbX1/img.png)
FCFS에서 가장 문제점이 난 금방 일을 끝낼 수 있는데 앞에 있는 다른 프로세스 때문에 오래 기다려야하는 이런 불공평함이 존재했었습니다. 그래서 이를 보완하기 위해 짧은 프로세스는 먼저 빼주자는 전략이 등장하게 됩니다. 즉, 다시 말해 Burst time이 가장 작은 프로세스부터 먼저 처리하겠다는 의미로 받아들여집니다. 이를 다른 말로 Job이 가장 짧은 것 부터 처리한다는 의미에서 SJF라고도 부릅니다. 또한 한 번 할당받으면 끝나기 때문에 "비선점" 스케줄링 방식을 채택하고 있습니다. 그로 인한 장점은 여러 가지가 있습니다. 아무래도 BT가 짧은 프로세스 위주로 처리하다 보니 평균 대기시간(WT)가 적어지게 될 것입니다. 또한 시스템 내 프로세스 수를 최소화시킴으로써 스케줄링 부하가 감소되고 메모리..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bJWoBG/btrnmOxsgRy/z4SeF3nUXYMXoOWo96Eol1/img.png)
이번 스프링 부트 내용 관련 정리는 JPA와 관련해서 작성합니다. 1. 스프링부트는 일종의 웹,앱 개발을 위한 하나의 "프레임 워크"입니다. Frame은 틀, work는 동작하다(동사)인 것으로 비추어 보아 틀 안에서 동작한다 이런 의미로 이해하시면 되겠습니다. 단어 그대로, 개발을 하는데 있어서 이 틀을 벗어나지 말라는 의미입니다. "신입 개발자들아. 내가 틀을 제공해줄테니까 너는 이 틀에 맞춰서 개발해. 그럼 너도 나처럼 좋은 프로그램을 만들 수 있을거야" 이게 프레임워크입니다. 2. 또한 스프링 부트는 오픈 소스입니다. 따라서 우리는 소스 코드의 내부를 들여다 볼 수 있습니다. 만약 우리가 스프링 부트를 공부하다가 내부를 너무 많이 공부해서 아주 깊숙히 알게 되면 이거 좀 불편한데? 생각이 들 때 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/wr4zt/btrnjE9UPvN/0N3wimnYGB1KxRliFgXkf0/img.png)
# 주소 https://www.acmicpc.net/problem/10026 10026번: 적록색약 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록) www.acmicpc.net # 문제 # 문제 해설 및 코드 리뷰 import java.awt.Point; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; public class Main{ static int n; static char[][]..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/9lbEq/btrniUKMUF3/eWKLesdUCLYw37ZQViyWg0/img.png)
이번 시간엔 프로세스 스케줄링이 일어날 때 여러 알고리즘에 의해서 수행되는데, 어떤 알고리즘이 있는지 어떻게 연산이 되는지 등을 알아보겠습니다. 다 정리하려면 굉장히 많겠지요??? 그래서 2가지 글로 나누어서 설명을 해보고자 합니다. 가능하면 한 개로 할 수 있으면 좋겠네요 첫 번째 FCFS (First-Come-First-Service)입니다. 쉽게 이해하자면 선착순입니다. 먼저 오는 프로세스에게 먼저 CPU를 할당해주겠다는 의미입니다. 따라서 비선점 스케줄링이라고도 합니다.(프로세스가 끝날 때까지 누구도 뺏을 수 없음) 그리고 스케줄링의 기준은 도착 시간을 기준으로 선택하고 먼저 도착한 프로세스를 먼저 처리하게 됩니다. 그러므로 자원을 효율적으로 사용할 수 있습니다. 왜 그럴까요? 자, 컴퓨터 공학에..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/lHLyO/btrnd5GhxQ7/4CCnVKeUkJS2WPdUquwot0/img.png)
지난 시간엔 스레드의 관리와 스레드의 개념에 대해 알아보았었습니다. 이번 시간엔 프로세스가 시스템에서 어떻게 스케줄링되어서 자원을 할당 받는지 공부하겠습니다. 중요한건 CPU에 할당 받는 부분에 대해서 집중적으로 한 번 알아보겠습니다. 우리가 프로세스 스케줄링을 왜 해야하는지 알고 계신가요??? 우리가 사용하는 시스템은 하나의 프로세스만 가지고 있지 않습니다. 즉 우리 시스템은 다중 프로그래밍이기 때문에 여러 프로세스가 존재합니다. 그렇기 때문에 자원을 나누어서 사용해야할 필요가 있습니다. 이를 적절하게, 효율적으로 사용하려면 자원을 할당 할 프로세스를 선택할 때 "스케줄링" 이라는 개념이 사용됩니다. 이 중 자원을 효율적으로 관리하기 위해 총 2가지로 나눌 수 있습니다. 시간 분할 관리 (time sh..