일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- VIM
- vscode
- Python
- react
- Javascript
- 프로그래머스
- Graph
- java
- db
- CS
- LeetCode
- 리트코드
- Redux
- 자바
- frontend
- 그레이들
- DP
- Database
- TypeScript
- 다이나믹 프로그래밍
- DFS
- network
- 동적 계획법
- 안드로이드
- git
- 알고리즘
- 백준
- BFS
- Algorithm
- Data Structure
- Today
- Total
목록Computer Science/Operating System (19)
늘 겸손하게
멀티 프로세싱 여러 개의 프로세스를 병렬로 실행 시켜 동시에 두 가지 이상의 일을 처리하는 일. 특정 프로세스에 문제가 생겨도 다른 프로세스에 작업을 맡길 수 있어 신뢰성이 높다. 웹 브라우저의 멀티 프로세스 구조 브라우저 프로세스 : 주소 표시줄, 북마크 막대, 뒤로 가기 버튼, 앞으로 가기 버튼 등을 담당하며 네트워크 요청이나 파일 접근 같은 권한을 담당 렌더러 프로세스 : 웹 사이트가 '보이는' 부분의 모든 것을 제어합니다. 플러그인 프로세스 : 웹 사이트에서 사용하는 플러그인을 제어합니다. GPU 프로세스 : GPU를 이용해서 화면을 그리는 부분을 제어합니다. IPC Inter Process Communication의 약자로 프로세스간 데이터를 주고 받고 공유 데이터를 관리하는 메커니즘을 말합니다..

프로그램 컴파일 과정 C 언어 기준으로 설명하겠습니다. 컴파일 과정은 크게 전처리 과정 -> 컴파일 과정 -> 어셈블리 과정 -> 링킹 과정을 거친다. 소스 코드 파일(*.c)이 전처리 과정 (Pre-processing)을 거치면 전처리된 소스 코드(*.i)가 되고 컴파일러를 거치면 어셈블리어 파일이 되고 어셈블리어 파일이 어셈블러를 거치면 목적 코드가 됩니다. 링커는 목적 코드와 프로그램 내에 있는 라이브러리 함수와 다른 목적코드들을 결합해 실행 파일(exe, out)을 만듭니다. 전처리 소스 코드의 주석을 제거하고 #include 등 헤더 파일을 병합하여 매크로를 치환합니다. 컴파일 오류 처리, 코드 최적화 작업을 하며 어셈블리어로 변환합니다. 어셈블리 어셈블리어는 목적 코드(object code)..
페이지 교체 알고리즘 스와핑은 페이지 교체 알고리즘을 기반으로 일어납니다. 스와핑이 적게 일어나는 페이지 교체 알고리즘이 좋은 알고리즘입니다. [ 오프라인 알고리즘 ] offline-algorithm 먼 미래에 참조되는 페이지와 현재 할당하는 페이지를 바꾸는 알고리즘이며, 가장 좋은 알고리즘입니다. 그러나 미래에 사용되는 프로세스를 알 방법은 없습니다. 즉, 사용할 수 없는 알고리즘이지만 다른 알고리즘과의 성능 비교에 대한 기준을 제공합니다. [ FIFO ] FIFO(First In First Out)는 가장 먼저 온 페이지를 교체 영역에 가장 먼저 놓은 방법을 의미합니다. [ LRU ] LRU(Least Recentle Used)는 참조가 가장 오래된 페이지를 바꿉니다. '오래된' 것을 파악하기 위해 ..
메모리 할당 프로그램을 실행시키기 위해서는 메모리를 할당합니다. 메모리 할당은 연속 할당과 불연속 할당으로 나뉩니다. 연속 할당 메모리에 '연속적으로' 공간을 할당하는 것. 프로세스 A, B, C를 나열하듯이 순차적으로 할당하는 방식입니다. 이는 메모리를 미리 나누어 관리하는 고정 분할 방식과 매 시점 프로그램의 크기에 맞게 메모리를 분할하여 사용하는 가변 분할 방식이 있습니다. 고정 분할 방식 (fixed partition allocation) 메모리를 미리 나누어 관리하는 방식이며, 메모리가 미리 나뉘어 있기 때문에 융통성이 없습니다. 또한 내부 단편화가 발생합니다. 가변 분할 방식 (variable partition allocation) 매 시점 프로그램 크기에 맞게 동적으로 메모리를 나눠 사용합니..