일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안드로이드
- TypeScript
- 프로그래머스
- vscode
- react
- BFS
- 동적 계획법
- LeetCode
- 리트코드
- Javascript
- 다이나믹 프로그래밍
- 알고리즘
- Database
- Redux
- Data Structure
- 그레이들
- network
- frontend
- java
- 자바
- VIM
- DP
- CS
- db
- Graph
- Algorithm
- DFS
- git
- 백준
- Python
- Today
- Total
목록CS (40)
늘 겸손하게
스케줄링 CPU 사용량을 최대로 하기 위해 프로세스를 잘 배정하는 것. 조건 : 오버헤드 최저, 사용률 최대, 기아 현상 최저 목표 - 시스템에 따라 조금씩 다르다 Batch System : 가능하면 많은 일을 수행. 시간(time)보단 처리량(throughout)이 중요. Interactive System : 빠른 응답 시간. 적은 대기 시간. Real-time System : 기한(deadline) 맞추기. 선점 / 비선점 스케줄링 선점 (preemptive) OS가 CPU의 사용권을 선점할 수 있는 경우, 강제 회수하는 경우(처리시간 예측 어려움) 비선점(non-preemptive) 프로세스 종료 혹은 I/O 등의 이벤트가 있을 때까지 실행 보장 (처리시간 예측 용이함) 프로세스 상태 선점 스케줄링..
[ IPC? ] Inter-Process Communication의 약자로 프로세스 간 통신을 의미 [ 왜 필요한가요? ] 프로세스는 독립적으로 실행된다. 즉, 한 프로세스는 다른 프로세스 코드, 데이터, 힙, 스택에 접근이 불가능하다. 하지만 이렇게 독립적인 프로세스들 끼리 통신이 필요한 상황이 있다. 이를 가능하게 해주는 것이 바로 IPC 통신이다. 프로세스는 커널이 제공하는 IPC 설비를 이용해 프로세스간 통신을 할 수 있게 된다. [ IPC 종류 ] 익명 PIPE Named PIPE (FIFO) Message Queue 공유 메모리 메모리 맵 소켓 파일 1. 익명 PIPE 파이프는 두 개의 프로세스를 연결하는데 하나의 프로세스는 데이터를 쓰기만 하고, 다른 하나는 데이터를 읽기만 할 수 있다. 한..
프로세스 관리 - Process Management CPU가 실행해야 할 프로세스가 여러 개일 때, CPU 스케줄링을 통해 어떤 프로그램을 실행할지 관리하는 것을 프로세스 관리(Process Management)라 부릅니다. 이때, CPU는 각 프로세스들이 누군지 알아야 관리가 가능한데 프로세스들의 정보를 갖고 있는 것이 바로 Process Metadata Process Metadata 구성 데이터 Process ID Process State Process Priority CPU Registers Owner CPU Usage Memory Usage 이 메타데이터는 프로세스가 생성되면 PCB(Process Control Block)이라는 곳에 저장됨 PCB (Process Control Block) : 프..
[ System Call ] 응용 프로그램이 운영체제의 기능을 사용하기 위해 운영체제의 API를 호출하는 함수가 System Call 운영 체제는 사용자 모드와 커널 모드로 나뉘어 구동하는데, open(), exec(), fork(), kill()와 같은 기능들을 사용하려면 커널 모드로의 전환이 필요합니다. 시스템 콜은 사용자 모드에서 커널 모드로 전환하게 해주며 커널이 제공하는 API를 이용한 뒤 다시 사용자 모드로 전환시킵니다. 커널이 제공하는 API는 무수히 많습니다. 프로세스 제어, 파일 조작, 장치 제어, 정보 유지, 통신, 보호 등이 있습니다. [ 대표적인 시스템 콜 ] open(), fork(), wait(), exec() [ 출처 ] https://github.com/gyoogle/tech..