
- 미리 읽어보자 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 성능에 매우 큰 영향을 미치..

● Insertion Sort? - Insertion Sort 또한 어렵지는 않지만 성능이 아쉬운 정렬이다. - Insertion Sort 또한 Selection sort와 마찬가지로 배열을 두 영역(정렬된 영역, 정렬되지 않은 영역)으로 나눠서 진행한다. - Insertion Sort는 정렬되지 않은 영역의 가장 앞에 있는 데이터를 하나씩 꺼내서 정렬된 영역 내의 적절한 위치에 삽입해서 정렬하는 알고리즘이다. [4, 1, 5, 3, 6, 2] - 참고로 Insertion Sort는 첫 번째 원소(index = 0)는 이미 정렬이 되어있다는 가정하에 정렬을 하는 알고리즘이다. - 아래 그림으로 보면 (index[0] = 4)는 이미 정렬되어 있는 상태이다. 1. - 정렬되지 않은 영역의 첫 번째 원소인 ..

● 선택정렬(Selection sort)? - Selection sort 또한 Bubble sort와 마찬가지로 구현이 그다지 어렵지 않은 알고리즘이다. - 반대로 말하면 Selection sort 또한 Bubble sort와 마찬가지로 성능이 좋다고 할 수는 없다. - Selection sort는 배열의 정렬되지 않은 영역의 첫 번째 원소(가장 앞 원소)를 시작으로 마지막 원소까지 비교 후 가장 작은 값을 첫 번째 원소로 가져온다. ex) [6, 3, 4, 1, 2, 5] - 위의 배열이 한 번도 Selection sort를 거치지 않은 배열이라고 했을 때 배열의 정렬되지 않은 영역은 아래와 같다. - 정렬되지 않은 영역의 첫 번째 원소(index[0] = 6)를 시작으로 마지막 원소까지 비교 후 가장..

● 도입 - OS가 작업을 처리하는 단위를 프로세스라고 하며 사용자가 OS에게 작업을 요구하는 만큼 프로세스의 수도 늘어난다. - 프로세스를 생성하면 각 프로세스 당 PCB가 생성되고 메모리에 코드, 데이터, 스택, 힙영역 등을 만들어줘야한다. - 따라서 프로세스의 수가 많아지면 그 수 만큼 PCB, 코드, 데이터, 스택, 힙영역을 만들어줘야 하기에 너무 무거워진다. ex) - 크롬 브라우저는 탭 1개 당 1개의 프로세스가 생성된다. - 100개의 탭을 열면 100개의 프로세스가 생성되는데 이렇게 되면 웹 브라우저가 메모리를 너무 많이 차지하게 된다. - 웹 브라우저의 탭들은 서로간의 통신을 위해 IPC(Inter Process Communication)를 이용하는데 IPC는 통신 비용이 상대적으로 많이..
- Total
- Today
- Yesterday
- Java8
- MongoDB
- node.js
- MySQL
- 프로세스
- SpringBoot
- Advanced Stream
- java
- spring
- git
- 코딩테스트
- Phaser3
- nosql
- 빅데이터
- 메모리
- DART
- 프로그래머스
- OS
- Stream
- Spring Boot
- 운영체제
- jpa
- SQL
- 자료구조
- 빅데이터 분석기사
- Phaser
- API
- db
- 코테
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |