● 도입 - FIFO 알고리즘은 일괄처리 시스템에 적절하기에 시분할 처리 시스템에서는 쓰기가 힘들고 SJF 알고리즘은 프로세스 종료시간을 예측할 수 없기에 구현이 힘들다. - FIFO 알고리즘은 먼저 들어온 프로세스가 전부 끝나야 다음 프로세스가 실행되는 알고리즘이다. - 이러한 FIFO 알고리즘의 문제를 해결하기 위해서는 한 프로세스에게 일정 시간만큼 CPU를 할당한 후 해당 시간이 지나면 강제로 다른 프로세스에게 동일한 일정 시간만큼 CPU를 할당해주면 된다. - 강제로 CPU를 뺏긴 프로세스는 Queue의 가장 뒷부분으로 밀려난다. - 이러한 알고리즘을 RR 알고리즘이라고 한다. ex) 아래는 (할당시간 = 2초)일 때의 예시이다. - (할당시간 = 2초)이기에 프로세스1을 2초간 실행한 후 남은 ..
● FIFO와 SJF - 이전 글을 통해 FIFO 알고리즘에서는 Burst Time(CPU 작업 시간)이 짧은 작업이 먼저 실행 됐을 때 평균 대기 시간이 짧아졌다는 것을 알 수 있었다.(프로세스 작업 순서에 따라 평균 대기 시간이 달라진다.) - 그렇다면 프로세스가 들어온 순서대로가 아니라 Burst Time이 짧은 프로세스를 먼저 실행하면 FIFO 알고리즘의 단점을 극복할 수 있을 것이다. - Burst Time이 짧은 프로세스를 먼저 실행하는 알고리즘이 바로 SJF(Shortest Job First)이다. ● SJF - 이론적으로만 보면 SJF는 FIFO 보다 더 성능이 좋은 알고리즘이라고 할 수 있다. - 하지만 SJF의 실제 구현에는 여러 현실적인 문제가 있기에 SJF 알고리즘은 사용되지 않는다..
2023.02.05 - [자료구조 및 알고리즘] - #7 큐(Queue) - 개념(FIFO : First In First Out) #7 큐(Queue) - 개념(FIFO : First In First Out) - 큐(Queue)도 Stack과 같이 단순한 규칙을 가지고 있는 리스트이다. - 규칙 : FIFO(First In First Out) - 즉, 먼저 들어간 데이터가 가장 먼저 나온다는 의미로서 먼저 들어간게 가장 나중에 나오는 Stack과 radderveloper.tistory.com ● FIFO - CPU 스케줄링 알고리즘(FIFO, SJF, RR, MLFQ) 중 하나인 FIFO에 대해 알아보자 - FIFO(First In First Out) : 먼저 들어온 작업이 먼저 처리된다.(나간다.) 즉..
- 미리 읽어보자 2023.02.26 - [운영체제] - #9 컨텍스트 스위칭(Context switching) #9 컨텍스트 스위칭(Context switching) 2023.02.22 - [운영체제] - #7 PCB(Process Control Block) - 프로세스 제어 블록 #7 PCB(Process Control Block) - 프로세스 제어 블록 ● PCB - 프로그램이 메모리에 올라가서 실행중인 상태를 프로세스라고 하며 OS는 radderveloper.tistory.com ● 스케줄링의 목표 - 스케줄링의 목표에는 여러가지가 있다. 1. 리소스 사용률 - 해당 목표는 CPU 사용률을 높이는 것일 수도 있고 I/O 디바이스의 사용률을 높이는 것을 목표로 할 수도 있다. 2. 오버헤드 최소화 ..
2023.02.05 - [자료구조 및 알고리즘] - #7 큐(Queue) - 개념(FIFO : First In First Out) #7 큐(Queue) - 개념(FIFO : First In First Out) - 큐(Queue)도 Stack과 같이 단순한 규칙을 가지고 있는 리스트이다. - 규칙 : FIFO(First In First Out) - 즉, 먼저 들어간 데이터가 가장 먼저 나온다는 의미로서 먼저 들어간게 가장 나중에 나오는 Stack과 radderveloper.tistory.com - CPU 스케줄러가 어떻게 동작하는지 알아보기 전에 이번 글과 관련이 있으므로 먼저 읽어보자 ● 프로세스 상태 - 이전 글에서 작성했던 프로세스 상태에 대해 다시 알아보자 2023.02.24 - [운영체제] - #..
● 도입 - 컴퓨터의 자원은 크게 2가지로 분류할 수 있다. 1. 필수 장치 : CPU, 메모리 등 2. 주변 장치 : HDD, 키보드, 마우스 등 - 앞으로 몇 개의 글을 통해 필수 장치 중 하나인 CPU에 대해 배워볼 것이다. ● CPU 스케줄링 - 프로그램을 실행시키면 메모리에 프로세스가 생성되고 각 프로세스에는 1개 이상의 Thread가 존재한다. - 이러한 프로세스들은 CPU를 차지하기 위해 OS의 명령을 기다리고 있는 상태(한 번에 하나의 프로세스만 실행된다.) - OS는 모든 프로세스에게 CPU를 할당 / 해제 하는데 이를 CPU 스케줄링이라고 한다. - CPU 스케줄링에서 스케줄러(OS)가 고려해야 할 사항은 2가지가 있다. - 참고로 아래의 2가지 사항이 PC 성능에 매우 큰 영향을 미치..
- Total
- Today
- Yesterday
- DART
- 프로세스
- node.js
- 메모리
- OS
- MySQL
- 운영체제
- Spring Boot
- git
- java
- 코딩테스트
- Java8
- Advanced Stream
- MongoDB
- 자료구조
- nosql
- API
- 코테
- 프로그래머스
- 빅데이터
- SpringBoot
- SQL
- spring
- jpa
- db
- 빅데이터 분석기사
- Stream
- 알고리즘
- Phaser
- Phaser3
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |