멀티태스킹(Multitasking)과 CPU 스케줄링(선점형, 비선점형, 라운드로빈, 우선순위 기반 스케줄링, FIFO, SFJ ...)
·
Computer Science/Operating System
멀티태스킹(Multitasking)이란?여러 프로세스 내에서 여러 작업을 동시에 수행하는 것을 의미한다. 정확히는, 멀티태스킹은 CPU의 스케줄링을 통해 "동시에 수행하는 것처럼 보이는 것"이다.멀티프로세싱은 실제로 CPU병렬 처리를 통해 동시에 작동하는 것으로 차이가 있다.   멀티태스킹 스케줄링 방식멀티프로그래밍 : 여러 프로그램이 메모리에 동시에 적재되어 CPU가 필요할 때마다 프로그램을 실행시분할 : 여러 프로세스가 동시에 실행되는 것처럼 보이도록 각 프로세스에 시간 할당량을 주고 CPU를 빠르게 전환해주는 방식실시간 시스템 : 시스템의 응답시간이 중요한 환경에서 특정 작업을 정해진 시간안에 완료해야 하는 방식  스케줄링 알고리즘비선점형 스케줄링 (Non-preemptive Scheduling)프..
프로세스의 상태
·
Computer Science/Operating System
Create , NewUser의 Job/command 요청이 커널에 등록되는 상태.커널이 등록되면서 프로세스가 생성됨.커널 안에 프로세스를 위한 PCB가 생기고 초기값이 PCB에 저장.PCB(Process Control Block) 알아보기프로세스는 생성 되었으나, 아직 준비 큐에 들어가지 않은 상태이다.이때 커널은 메모리 공간이 있는지 확인한다.fork()나 exec() 함수를 통해 프로세스가 생성된 상태이다.fork() : 부모 프로세스의 주소 공간을 그대로 복사하며, 새로운 자식 프로세스를 생성. 주소 공간만 복사할 뿐, 프로세스의 비동기 작업 등은 상속하지 않음.exec() : 새롭게 프로세스를 생성  Ready프로세스가 생성되고 커널이 "메모리 할당"을 인지하고 (implicit 하게 자원 요청..
IPC(Inter-Process Communication)
·
Computer Science/Operating System
IPC(Inter-Process Communication)란?프로세스끼리 데이터를 주고받고 공유 데이터를 관리하는 방법.ex) 브라우저를 띄워 네이버 서버와 HTTP 통신해서 html 등의 파일을 가져오는 것 IPC의 종류공유메모리파일소켓파이프메세지 큐위 다섯가지 IPC 종류를 하나씩 살펴보자  공유메모리 (Shared Memory)여러 프로세스가 메모리를 공유하여 서로 통신할 수 있도록 하는 것.어떠한 매개체를 통해 데이터를 주고 받는게 아니라 메모리 자체를 공유.때문에 불필요한 데이터 복사의 오버헤드가 발생하지 않음.고속 데이터 전송 : 메모리에 직접 접근하므로 속도가 가장 빠른 방법같은 메모리 영역을 여러 프로세스가 공유하기 때문에 동기화 필요  파일(File)디스크에 저장된 데이터를 기반으로 통신..
[프로그래머스/level 1] 카드 뭉치 - 159994
·
코딩 테스트 정복기/프로그래머스
[level 1] 카드 뭉치 - 159994문제 링크성능 요약메모리: 79.2 MB, 시간: 0.03 ms구분코딩테스트 연습 > 연습문제채점결과정확성: 100.0합계: 100.0 / 100.0제출 일자2024년 10월 22일 01:52:21문제 설명코니는 영어 단어가 적힌 카드 뭉치 두 개를 선물로 받았습니다. 코니는 다음과 같은 규칙으로 카드에 적힌 단어들을 사용해 원하는 순서의 단어 배열을 만들 수 있는지 알고 싶습니다.원하는 카드 뭉치에서 카드를 순서대로 한 장씩 사용합니다.한 번 사용한 카드는 다시 사용할 수 없습니다.카드를 사용하지 않고 다음 카드로 넘어갈 수 없습니다.기존에 주어진 카드 뭉치의 단어 순서는 바꿀 수 없습니다.예를 들어 첫 번째 카드 뭉치에 순서대로 ["i", "drink", "..
[프로그래머스/level 2] 배달 - 12978
·
코딩 테스트 정복기/프로그래머스
[level 2] 배달 - 12978문제 링크성능 요약메모리: 93.9 MB, 시간: 0.93 ms구분코딩테스트 연습 > Summer/Winter Coding(~2018)채점결과정확성: 100.0합계: 100.0 / 100.0제출 일자2024년 10월 18일 17:00:44문제 설명N개의 마을로 이루어진 나라가 있습니다. 이 나라의 각 마을에는 1부터 N까지의 번호가 각각 하나씩 부여되어 있습니다. 각 마을은 양방향으로 통행할 수 있는 도로로 연결되어 있는데, 서로 다른 마을 간에 이동할 때는 이 도로를 지나야 합니다. 도로를 지날 때 걸리는 시간은 도로별로 다릅니다. 현재 1번 마을에 있는 음식점에서 각 마을로 음식 배달을 하려고 합니다. 각 마을로부터 음식 주문을 받으려고 하는데, N개의 마을 중에서..
[프로그래머스/level 1] 가장 많이 받은 선물 - 258712
·
코딩 테스트 정복기/프로그래머스
[level 1] 가장 많이 받은 선물 - 258712문제 링크 성능 요약메모리: 96.3 MB, 시간: 30.08 ms구분코딩테스트 연습 > 2024 KAKAO WINTER INTERNSHIP채점결과정확성: 100.0합계: 100.0 / 100.0제출 일자2024년 10월 18일 11:07:50문제 설명선물을 직접 전하기 힘들 때 카카오톡 선물하기 기능을 이용해 축하 선물을 보낼 수 있습니다. 당신의 친구들이 이번 달까지 선물을 주고받은 기록을 바탕으로 다음 달에 누가 선물을 많이 받을지 예측하려고 합니다.두 사람이 선물을 주고받은 기록이 있다면, 이번 달까지 두 사람 사이에 더 많은 선물을 준 사람이 다음 달에 선물을 하나 받습니다.예를 들어 A가 B에게 선물을 5번 줬고, B가 A에게 선물을 3번 ..
[프로그래머스/level 1] 신고 결과 받기 - 92334
·
코딩 테스트 정복기/프로그래머스
[level 1] 신고 결과 받기 - 92334문제 링크 성능 요약메모리: 154 MB, 시간: 186.39 ms구분코딩테스트 연습 > 2022 KAKAO BLIND RECRUITMENT채점결과정확성: 100.0합계: 100.0 / 100.0제출 일자2024년 10월 18일 10:24:23문제 설명문제 설명신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다.각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다.신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수 있습니다.한 유저를 여러 번 신고할 수도 있지만, 동일한 유저에 대한 신고 횟수는 1회로 처리됩니다.k번 이상 신고된 유저는 게시판 이용..
[프로그래머스/level 3] 기지국 설치 - 12979
·
코딩 테스트 정복기/프로그래머스
[level 3] 기지국 설치 - 12979문제 링크 성능 요약메모리: 52.6 MB, 시간: 2.75 ms구분코딩테스트 연습 > Summer/Winter Coding(~2018)채점결과정확성: 70.5효율성: 29.5합계: 100.0 / 100.0제출 일자2024년 10월 18일 00:19:12문제 설명N개의 아파트가 일렬로 쭉 늘어서 있습니다. 이 중에서 일부 아파트 옥상에는 4g 기지국이 설치되어 있습니다. 기술이 발전해 5g 수요가 높아져 4g 기지국을 5g 기지국으로 바꾸려 합니다. 그런데 5g 기지국은 4g 기지국보다 전달 범위가 좁아, 4g 기지국을 5g 기지국으로 바꾸면 어떤 아파트에는 전파가 도달하지 않습니다.예를 들어 11개의 아파트가 쭉 늘어서 있고, [4, 11] 번째 아파트 옥상에..
[프로그래머스/level 3] 단속카메라 - 42884
·
코딩 테스트 정복기/프로그래머스
[level 3] 단속카메라 - 42884문제 링크 성능 요약메모리: 54 MB, 시간: 19.23 ms구분코딩테스트 연습 > 탐욕법(Greedy)채점결과정확성: 50.0효율성: 50.0합계: 100.0 / 100.0제출 일자2024년 10월 17일 23:21:09문제 설명고속도로를 이동하는 모든 차량이 고속도로를 이용하면서 단속용 카메라를 한 번은 만나도록 카메라를 설치하려고 합니다.고속도로를 이동하는 차량의 경로 routes가 매개변수로 주어질 때, 모든 차량이 한 번은 단속용 카메라를 만나도록 하려면 최소 몇 대의 카메라를 설치해야 하는지를 return 하도록 solution 함수를 완성하세요.제한사항차량의 대수는 1대 이상 10,000대 이하입니다.routes에는 차량의 이동 경로가 포함되어 있으..
멀티프로세싱(Multiprocessing), 멀티스레딩(Multithreading)
·
Computer Science/Operating System
멀티프로세싱 (Mutiprocessing)멀티프로세싱이란? 여러 CPU를 사용하여 동시에 여러 프로세스를 실행하는 컴퓨팅기술. 각 프로세스는 독립된 메모리 공간을 갖고 있어 서로의 메모리에 직접 접근하지 않는다.⭐️ 프로세스 간 통신 (IPC) : 프로세스 간 데이터를 주고받기 위해 파이프, 메시지 큐, 공유메모리 등의 IPC 메커니즘을 사용. IPC(Inter-Process Communication) 설명 바로가기 멀티프로세싱의 장점과 단점장점여러 프로세스를 병렬로 실행함으로써 작업 처리 속도가 빨라짐 (성능 향상)하나의 프로세스가 실패해도 다른 프로세스에는 영향을 미치지 않음 (안정성)추가적인 CPU나 코어를 통해 쉽게 시스템 성능 확장이 가능함 (확장성)단점다중 CPU/코어 시스템은 단일 CPU 시..