일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 컴퓨터공학 #Java #자바 #클래스 #객체 #인스턴스
- 컴퓨터공학 #c #c언어 #문자열입력
- BOJ #컴퓨터공학 #C++ #알고리즘 #자료구조
- 컴퓨터공학 #자료구조 #스택 #c++ #알고리즘 #백준문제풀이
- HTML #CSS
- 잔
- Today
- Total
목록CS/운영체제 (4)
영벨롭 개발 일지
[ 어떻게 하면 CPU를 효율적으로 가상화하고 제어할까? ] OS는 time sharing을 통해 물리적인 CPU를 공유함으로써 각 process에게 가상의 CPU를 제공해야 합니다. 이때 두 가지 문제가 있습니다. 1. Performance: 추가적인 overhead 없이 어떻게 virtualization을 구현해야할까? 2. Control: 어떻게 하면 CPU에 대한 제어를 유지하면서 효율적으로 process를 실행할까? ( CPU 제어 없이는 process가 영원히 실행하여 기계를 장악하거나, 접근해서는 안되는 정보에 접근함 ) [ Direct Execution ] direct execution은 program을 CPU 위에서 직접 실행하여 한 번 수행하면 종료될 때까지 수행하는 방법입니다. 이때 ..
Process API란? Prcess API란 OS가 Application에게 제공하는 interface입니다. 프로세스를 생성, 정지, 종료, 재개와 같은 기능을 제공해주는 것인데요! System call 이라고도 부릅니다. Process API인 fork(), exec(), wait()을 하나씩 살펴보겠습니다. fork() - child process 생성 fork()는 child process를 생성해줍니다. child process는 fork()를 호출한 process 즉 부모 process로부터 분리된 메모리 공간을 할당받으며 부모와 동일한 메모리 contents를 갖습니다. child process는 자신만의 register들과 PC(program counter register)를 갖습니다. ..
이전 글에서 운영체제에 대해 간단히 살펴보았는데요! 언급한 개념 중, Virtualization이 있었습니다. OS가 physical resource들(CPU, memory, disk, ...)을 가상화하여 각 program마다 자신만의 resource를 갖고 있다는 illusion을 제공합니다! 어떻게 CPU가 여러개라는 착각을 제공할까? OS는 CPU virtualizing(가상화)를 통해 여러 개의 가상 CPU가 존재하는 것과 같은 착각을 제공하는데요. 이때, OS는 TIme Sharing을 통해 CPU virtualizing을 합니다. Time Sharing이란 CPU 관점에서 time quantum마다 하나의 프로세스가 CPU를 점유해서 사용하는 것입니다. 말 그 대로 시간을 분할하여 마치 자신..
Program이 실행되면 무슨 일이 생길까? 본격적으로 OS에 들어가기 앞서, Program이 실행되면 무슨 일이 생기는지 알아보겠습니다. 하나의 Running Program은 여러 instruction들을 실행 시킵니다. 즉, 프로그램 실행은 Instruction들의 실행이라고도 할 수 있습니다. 과정은 다음과 같습니다. 1. Processor(CPU)가 memory로부터 하나의 instruction으로 Fetch 합니다. 2. Decode: 이 instruction이 어떤 것인지 알아냅니다. 3. Execute: 두 수의 연산이나 memory access, 조건문 체크, 함수로 이동 등등 여러 동작을 실행합니다. 4. 실행이 끝나면 Processor는 다음 instruction으로 이동하여 위 과정을..