반응형 컴퓨터 공학23 [운영체제] 스케줄링 종류와 목적 🔷 정의 CPU 스케줄러는 프로세스가 생성된 후 종료될 때까지 모든 상태 변화를 조정하는 일을 합니다. 규모에 따라 고수준, 중간, 저수준 스케쥴링으로 구분됩니다. 우리가 어떤 일정을 계획할 때 일 단위로 우선순위에 따라 순서를 정하고 실행하는 과정이라고 생각하면 편합니다. 고수준 스케줄링 가장 큰 틀에서 이루어지는 CPU 스케줄링으로 작업 스케줄링(job scheduling)이라고도 합니다. 시스템 내의 전체 작업 수를 조절하는 것을 말합니다. 여기서 작업은 운영체제에서 다루는 일의 가장 큰 단위로, 1개 또는 여러 개의 프로세스로 이루어집니다. 고수준 스케줄링은 어떤 작업을 시스템이 받아들일지 또는 거부할지를 결정합니다. 일단 작업이 시작하면 시스템 자원을 사용하기에 기존 작업에 영향을 미칩니다. 이.. 2021. 9. 19. [알고리즘 / Kotlin] 프로그래머스 - 다리를 지나는 트럭 다리를 지나는 트럭 문제 설명 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 수 있으며, 다리는 weight 이하까지의 무게를 견딜 수 있습니다. 단, 다리에 완전히 오르지 않은 트럭의 무게는 무시합니다. 예를 들어, 트럭 2대가 올라갈 수 있고 무게를 10kg까지 견디는 다리가 있습니다. 무게가 [7, 4, 5, 6] kg인 트럭이 순서대로 최단 시간 안에 다리를 건너려면 다음과 같이 건너야 합니다. 따라서, 모든 트럭이 다리를 지나려면 최소 8초가 걸립니다. solution 함수의 매개변수로 다리에 올라갈 수 있는 트럭 수 bridge_length.. 2021. 9. 15. [운영체제] 프로세스와 스레드의 차이 프로세스와 스레드는 프로그래밍을 배우면 자주 접하는 단어일 것입니다. 프로그램의 동작 방식을 이해하기 위해서는 기본적으로 알고 있어야 하기 때문에 기술 면접에서도 단골 질문으로 등장합니다. 이번에는 이에 대해 알아보려고 합니다. 프로세스 vs 프로그램 둘의 차이를 알기에 앞서 하나의 중요한 개념을 짚고 가야 합니다. 바로 프로세스와 프로그램의 차이이다. 둘의 차이는 다음과 같습니다. 프로그램 : 저장장치에 저장되어 있는 정적인 상태 (어떤 데이터를 사용하여 어떤 작업을 할지 절차를 적어놓은 것) 프로세스 : 실행을 위해 프로그램이 메모리에 올라온 동적인 상태 즉, 메모리에 올라와 있는 프로그램이 실행되면 프로세스가 됩니다. 비유를 하자면 플래너에 계획을 작성하는 것이 프로그램이고 이를 실제로 행하는 것은.. 2021. 9. 12. [알고리즘 / Kotlin] 프로그래머스 - 위장(해시) 위장 문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다. 같은 이름을 가진 의상은 존재하지 않습니다. clothes의 모든 원소는 문자열로 이루어져 있습니다. 모든 문자열의 길이는 1 이상 20 이.. 2021. 9. 3. [운영체제] 병렬 처리 기법 컴퓨터에서 병렬 처리는 동시에 여러 개의 명령을 처리하여 작업의 능률을 올리는 방식을 말합니다. 이번 글에서는 이러한 컴퓨터의 병렬 처리에 있어서 어떠한 기법을 사용하는지 알아봅시다. CPU 내에서 명령어는 제어장치가 처리합니다. 제어장치는 명령어를 가져와 해석 후 실행하고 결과를 저장하는 과정을 계속 반복합니다. 이러한 한 사이클을 스레드(thread)라고 합니다. 스레드를 이루는 각 단계는 CPU의 한 Clock에 한 번씩 이루어집니다. CPU에서 명령어 실행되는 과정은 아래와 같이 4단계로 나눕니다. (경우에 따라 더 세분화하기도 합니다.) 명령어 패치 (IF) : 다음에 실행할 명령어를 명령어 레지스터에 저장 명령어 해석 (ID) : 명령어를 해석 실행 (EX) : 해석한 결과를 토애도 명령어 실.. 2021. 8. 30. [운영체제] 컴퓨터 성능 향상 기술 (버퍼, 캐시, 인터럽트) 현대 컴퓨터 구조의 가장 큰 문제점은 CPU, 메모리와 주변장치의 작업 속도가 다르다는 것입니다. 메모리는 시스템 버스(FSB)의 속도와 같고 CPU는 내부 버스(BSB)의 속도와 같은데 일반적으로 내부 버스 속도가 더 빠르기 때문에 메모리나 주변장치는 CPU의 속도를 따라가지 못합니다. 이번에는 이러한 장치 간 속도 차이를 개선하고 시스템의 작업 속도를 올리기 위해 개발된 기술 중 운영체제 관련된 기술을 간단히 알아봅시다. 🔷 버퍼(Buffer) 버퍼는 임시 저장 공간입니다. 속도에 차이가 있는 두 장치 사이에서 그 차이를 완화하는 역할을 합니다. 예를 들어 창고에 있는 사과 5개를 도마에 옮긴다고 하면 이때 한 번에 하나씩 옮기면 다섯 번을 왕복해야 하지만 사과를 바구니에 담아서 옮기면 한 번에 옮길.. 2021. 8. 24. 이전 1 2 3 4 다음 반응형