스케줄링 OS는 CPU 등의 자원을 프로세스에 적절히 배정함으로써 시스템의 성능을 개선할 수 있음 프로세스가 작업을 수행하려면 스케줄러로부터 cpu를 할당 받아야 함 프로세스 실행 = (CPU 실행 + I/O 대기) 의 사이클 = CPU - I/O Burst Cycle CPU Scheduling = CPU 를 잘 사용하기 위해 프로세스를 잘 배정하기 ! 프로세스를 스케줄링하기 위한 Queue 프로세스를 스케줄링하기 위한 Queue 에는 세 가지 종류가 존재함 Job Queue : 현재 시스템 내에 있는 모든 프로세스의 집합 Ready Queue : 현재 메모리 내에 있으면서 CPU 를 잡아서 실행되기를 기다리는 프로세스의 집합 Device Queue : Device I/O 작업을 대기하고 있는 프로세스의..
문제 문제 바로가기> BOJ 2579번: 계단 오르기 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 풀이 주어진 조건을 만족하면서 다음 계단에 도착하는 방법은 다음과 같이 총 2가지이다. 1. 두 계단 전에서 현재 계단으로 : dp[i-2]+arr[i] 2. 한 계단 전에서 현재 계단으로 : dp[i-3]+arr[i-1]+arr[i] 따라서 위 점화식을 토대로 max 값을 찾아내면 된다! #include #define MAX 301 using namespace std; int N; int arr[MAX], dp[MAX]..
메모리 구조 코드 영역: 실행할 프로그램의 코드 데이터 영역: 전역 변수, 정적 변수 (프로그램 시작과 동시에 할당, 프로그램이 종료되어야 소멸) 힙 영역: 사용자의 동적 할당 스택 영역: 지역 변수, 매개 변수 (함수 호출 시 ! 함수 호출이 완료되면 사라짐) 프로세스 (Process) : 메모리에 올라와 실행되고 있는 프로그램 (OS는 모든 프로그램을 프로세스 형태로 실행함) OS로 부터 독립된 영역을 할당 받음 (통신을 위해서는 IPC: Inter-Process Communication 사용) 프로세스는 최소 한개의 쓰레드 (메인 쓰레드)를 가짐 new(생성), running(실행), waiting(I/O, event wait, waiting-> ready), ready(by interrupt), ..
운영체제 (Operating System) : 하드웨어를 관리하고, 컴퓨터 시스템의 자원들을 효율적으로 관리하며, 응용 프로그램과 하드웨어 간의 인터페이스로써 다른 응용 프로그램이 유용한 작업을 할 수 있도록 환경을 제공하는 프로그램 운영체제의 역할 1. 프로세스 관리 2. 저장장치 관리 1차 저장장치(Main Memory) 프로세스에 할당하는 메모리 영역의 할당과 해제 메인 메모리의 효율적 활용을 위한 가상 메모리 기능 2차 저장장치(HDD, NAND Flash Memory 등) 파일 형식의 데이터 저장 파일 데이터 관리를 위한 파일 시스템을 OS에서 관리 ( FAT, NTFS, EXT2, JFS, XFS 등 ) 3. 네트워킹 : 응용 프로그램이 네트워크를 사용하려면 운영체제에서 네트워크 프로토콜을 지..
문제 문제 바로가기> BOJ 12865번: 평범한 배낭 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 풀이 0-1 knapsack 문제로, 다이나믹 프로그래밍을 이용하여 해결할 수 있다. dp[i][j] : i개의 물건을 가지고, 최대 무게가 j 일 때 담을 수 있는 최대 가치 #include #define MAX 101 #define MAX_K 100001 using namespace std; int N, K; int weight[MAX], ..
문제 문제 바로가기> BOJ 1238번: 파티 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net 풀이 파티가 열리는 마을에서 돌아오는 데 걸리는 최소 시간은 다익스트라 알고리즘으로 구할 수 있다! 하지만, 돌아오는 것은?! 그래프를 만들 때, 역방향 값을 저장해 놓고, 한 번 더 다익스트라 알고리즘을 이용하면, 파티가 열리는 마을에 가는 데 걸리는 최소 시간도 구할 수 있다! #include #include #include #define MAX 1001 #define INF 987..
가끔, 상상 한다. 만약 이날 그 전화를 받지 않았더라면, 그리고 터미널로 향하지 않았더라면 우리는 어떻게 됐을까? 산다는 것은 매 순간 선택이다. 설령 그것이 외나무다리라 해도 선택해야만 한다. 전진할 것인가, 돌아갈 것인가, 아니면 멈추어 설 것인가. 결국, 지금 내가 발 딛고 있는 이 지점은 과거 그 무수한 선택의 결과인 셈이다. 난 그날 전화를 받았고, 터미널로 향했으며, 그 작은 선택들이 모여 우린 지금의 현재를 맞았다. 그 어떤 길을 선택하더라도 가지 않은 길에 대한 미련은 남기 마련이다. 그래서 후회 없는 선택이란 없는 법이고 그래서 삶에 정답이란 없는 법이다. 그저 선택한 길을 정답이라 믿고 정답으로 만들어가면 그만이다. 내 지난 선택들을 후회 없이 믿고 사랑하는 것, 그게 삶의 정답이다...