일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Python
- CS
- two pointer
- backtracking
- 재귀
- BF
- 머신러닝
- Algorithm
- OS
- 파이썬
- 재귀함수
- 코딩테스트
- 신나는함수실행
- Virtual Memory
- Loss
- 백트래킹
- 정렬
- sort
- 프로그래머스
- 알고리즘
- python3
- Github
- ML
- 코테
- 투포인터
- 완전탐색
- 1일1솔
- dfs
- 백준
- 브루트포스
- Today
- Total
목록운영체제 (2)
이것저것 공부 기록하기
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/pmQIA/btq5aNocWQc/xgJdfmELjdNx38DvomhtT0/img.png)
가상 메모리(Virtual Memory System) 배경 실제 각 프로세스마다 충분한 메모리를 할당하기에는 메모리 크기가 한계가 있다. 예를 들어, 리눅스는 하나의 프로세스가 무조건 4GB의 영역을 갖는다. 통상 메모리는 8GB? 16GB? 32GB 정도 되니까 프로세스가 통째로 다 올라가게 되면 프로세스를 각각 2개,3개,4개 정도밖에 실행하지 못하게 된다. 폰노이만 구조 기반이므로, 모든 코드는 메모리에 반드시 있어야 한다. 그 메모리에서 코드를 한 줄, 한 줄 가져와서 CPU가 실행을 한다. 따라서 메모리와 프로세스의 dependency가 크다. 그런데 멀티프로세싱이나 멀티태스킹의 장점은 프로세스를 여러 개 실행시킬 수 있다는 건데... 어떻게 하면 적은 메모리에서 많은 프로세스를 실행시킬 수 있..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b7l4JX/btq4s27u12O/KFf8bDMGP34F9NENPm3HI0/img.png)
프로세스(Process) 란? 실행 중인 프로그램은 프로세스라고 함 프로세스 : 메모리에 올려져서 실행 중인 프로그램 코드 이미지(바이너리) : 실행 파일 ex) ELF format 프로세스라는 용어는 작업, task, job 이라는 용어와도 혼용되어 사용됨 여기서 주의해야 할 점은 응용 프로그램은 프로세스가 아니라는 점 (= 응용 프로그램은 여러 개의 프로세스로 이루어질 수 있다. 하나의 응용 프로그램은 여러 개의 프로세스(프로그램)가 상호작용을 하면서 실행될 수도 있음 간단한 C/C++ 프로그램을 만든다면 하나의 프로세스라고 할 수 있음 여러 프로그램을 만들어서 서로 통신하면서 프로그램을 작성할 수도 있음 (IPC 기법) 스케쥴러와 프로세스 스케쥴러는 프로세스 실행을 관리함 스케쥴링 알고리즘 목표에 ..