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

[운영체제(OS)] CPU스케쥴링(CPU Scheduling) - 1

0. CPU 스케쥴링을 공부하기 전, 스케쥴러에 대해서 알아보고 가겠습니다. 우리가 흔히 얘기하는 스케쥴러 는 short term scheduler을 의미합니다. 그럼 long term scheduler도 있을까요? 물론입니다. 예전에는 스케쥴러를 long term , short term 스케쥴러가 나눠져 있었습니다. 그럼 long term은 왜 사용하지 않고 short term 만 남았는지 한 번 알아보겠습니다. 스케쥴러는 Long-term Scheduler, Short-term Scheduler, Medium-term Scheduler, 3개로 나눌 수 있는데요, 먼저 Long-term scheduler 에 대해서 알아보겠습니다. Long-term scheduler 는 하드 디스크에서 메모리로 프로세..

2021.12.31 게시됨

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

[백준]16928(파이썬) - 뱀과 사다리 게임

https://www.acmicpc.net/problem/16928 16928번: 뱀과 사다리 게임 첫째 줄에 게임판에 있는 사다리의 수 N(1 ≤ N ≤ 15)과 뱀의 수 M(1 ≤ M ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에는 사다리의 정보를 의미하는 x, y (x < y)가 주어진다. x번 칸에 도착하면, y번 칸으 www.acmicpc.net 이 문제는 처음에 DP로 풀었다가 결국에는 BFS로 풀게 된,,, 시간이 꽤 오래 걸렸던 문제입니다. 이 문제를 처음 읽고 든 생각은 'DP로 풀어야겠다' 였습니다. 먼저, Bottom-up 방식을 이용, 1차원 DP 테이블을 만들어 준 뒤, 사다리( 위로 올라가는 칸) 만을 고려해서 DP테이블을 갱신했습니다. 두 번째로, for문을 한 번 더 돌면서..

2021.12.29 게시됨

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

[운영체제(OS)] 쓰레드(Thread)와 멀티 쓰레드 프로그래밍(Multi Thread Programming) 이란?

지난 시간에는 프로세스와 컨텍스트 스위치에 대해서 알아봤습니다. 다시한번 정리해보면 프로세스는 '실행 중인 프로그램' 이라고 할 수 있죠. 하나의 프로그램에서 여러 가지 일을 동시에 실행한다면 일 처리를 위해 부모 프로세스는 자식 프로세스를 계속 생성하고 없애고를 반복할텐데요, 생성하고 없애는 과정에서 자원의 공유와 비용이 문제가 생길 수 있습니다. 그렇다면 프로세스를 생성하지 않고 어떻게 자원 공유를 쉽게 효율적으로 할 수 있을까요? 여기서 바로 쓰레드가 나옵니다. 쓰레드, 멀티쓰레드 프로그래밍 이란? 쓰레드는 프로세스의 실행 단위입니다. 프로세스와 마찬가지로 CPU의 작업 단위 중 하나이지만 프로세스와는 다르게 굉장히 가볍습니다. 하나의 프로세스는 여러개의 쓰레드로 구성이 가능하고, 같은 프로세스 내..

2021.12.22 게시됨