일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스택
- 릿코드
- cors
- APOLLO
- 연결 리스트
- 연결리스트
- 해시테이블
- C
- GraphQL
- 프로그래머스
- 큐
- 웹팩
- 프로세스
- 알고리즘
- vue3
- 브라우저
- 프론트엔드
- 타입스크립트
- pytorch
- 포인터
- 배열
- RT scheduling
- RxJS
- alexnet
- 자료구조
- 자바스크립트
- 컨테이너
- 코딩테스트
- 이진탐색
- Machine Learning
- Today
- Total
목록운영체제, 컴퓨터 구조 (19)
프린세스 다이어리
1. 프로세스 상태 초기 컴퓨터에서 한정된 컴퓨팅 자원으로 여러 프로그래밍을 동시에 실행하(는 것처럼 보이)고 싶어 CPU가 여러 프로세스를 바꿔치기하면서 그때그때 적당한 프로세스를 실행하게 했고 그걸 가능하게 한 것이 스케줄러다. 간단한 키보드 입력 같은 경우에는 바로 실행이 끝나지만, 프로세스 도중에 파일을 읽고 출력을 해야 하는 프로그램이 있다면, 저장매체에서 파일을 읽어와서 다시 돌아오는 도중에는 프로세스가 wait 상태로 실행하지 않는 상태다. 미리 CPU가 파악을 하고 있어야 프로세스가 멈춘 상태일 때 대기 중인 상태의 다른 프로세스를 먼저 실행시킬지 판단할 수 있다. 프로세스 상태에 대해 좀 더 알아보자. 1. 프로세스 생성(new) - 생성중인 프로세스 2. 실행 가능(ready) - CP..
1. 프로세스, 스케줄러란? 프로세스란 실행 중인 프로그램으로 작업, 태스크, 잡이라는 말과 혼용이 된다. 폰 노이만 구조에 따라, 모든 프로그램의 코드는 먼저 메모리에 들어간 후 실행이 되어야 하고, CPU가 프로세스를 실행해 준다. 프로그램을 짤 때, 매끄러운 사용자 경험을 전달하기 위해서는 프로세스 실행에 필요한 자원들을 효율적으로 다루어야 하는데, 그걸 도와주는 게 바로 스케줄러(scheduler)다. 스케줄링이란, 프로세스를 어느 순서대로 실행할지 판단하는 일종의 계획이다. 프로그램이 실행되면 코드는 메모리에 들어가고, CPU에서 코드를 한 줄씩 읽으면서 프로세스를 실행하는데, CPU 자원은 한정되어 있고, 사람들은 여러 프로그램을 동시에 이용하길 원한다. 여러 프로세스 실행을 관리하기 위해 어..
1. 가비지가 무엇이고, 왜 가비지 컬렉터가 필요한가요? 가비지 콜렉터(Garbage Collector)는 애플리케이션이 실행될 때, 메모리에 저장은 되어 있지만 어디에서도 사용되지 않는 변수를 알아서 메모리에서 치워 주는 관리 방법이다. 제대로 이해하기 위해서는 먼저 가비지, 즉 쓰레기 메모리가 무엇이고 왜 생기는지를 알아야 한다. 이전에 업로드한 동적 메모리 할당의 개념을 정리한 글과 내용이 일부 중복되어 있다. 일반적으로 C에서 배열을 선언할 때, 사전에 적절한 크기만큼 할당해 준다. int a[20] = "hello world"; 그런데 항상 사전에 메모리를 할당해주는 게 아니라, 프로그램 실행 도중에 필요시 메모리를 할당해야 할 때가 있다. C에서는 malloc() 함수를 사용해, 원하는 만큼의..