일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준
- 완전탐색
- 스케줄링
- BFS
- 김건우
- segmentation
- 동기화문제
- 알고리즘
- samsung research
- Memory Management
- exec
- 운영체제
- 삼성리서치
- fork
- pwnable.kr
- 시뮬레이션
- 삼성기출
- 프로세스
- ascii_easy
- 가상메모리
- Deadlock
- dfs
- 컴공복전
- BOJ
- paging
- 구현
- 백트래킹
- higunnew
- Brute Force
- 데드락
- Today
- Total
목록Operating System (23)
gunnew의 잡설
운영체제라는 단어를 꺼내는 순간 분명히 이런 질문을 들을 것이다. 프로세스와 쓰레드의 차이는 무엇인가요? 혹은 프로세스와 프로그램의 차이는 무엇인가요? 아직 학교에서 운영체제 교과목을 듣지 않은 나조차도 수없이 들었던 질문이다. 그만큼 프로세스는 운영체제의 가장 핵심적인 개념이라 할 수 있다. 지난 강에서는 프로그램의 실행에 대해 알아보았다. 특히, 프로그램 스스로 할 수 없는 일을 할 때(I/O) 운영체제 kernel이 그 일을 어떻게 처리하는지에 대해 알아보았다. 따라서 이번 강은 지난 강의 연장선으로 I/O를 포함하여 프로그램이 요구하는 task들을, 운영체제는 어떻게 수행하고 관리하는지가 이번 강의 주제이다. 프로그램은 우리가 눈으로 볼 수 있게끔 파일로서 저장된 것, 즉, 실행 파일을 뜻한다. ..
1강은 어디가고 2강부터 시작하지? 그것은 나의 게으름으로 1장을 줄글 형태로 아직 바꾸지 못했다.. 1강도 곧 올릴 예정이다. 그 때는 2강 지우고 다시 올려야지! I/O의 실행 *동기식 입출력(synchronous)과 비동기식(asynchornous) 입출력 지난 강(?)에서도 강조했지만, I/O는 OS의 kernel을 통해서만 가능하다. 따라서 사용자 프로그램이 I/O를 하기 위해서는 인터럽트를 발생시켜 CPU 제어권을 해당 사용자 프로그램으로부터 OS로 넘겨주어야 한다는 것을 인지하자. 동기식 입출력과 비동기식 입출력을 구분하는 것은 간단하다. 동기식이란 말 그대로 입출력 작업이 끝날 때까지 기다리면서 프로그램을 진행하는 것이고, 비동기식이란 I/O device로 하여금 입출력 작업을 하도록 하고..
컴퓨터의 구조는 다음 그림과 같이 간단하게 나타낼 수 있다. 먼저 CPU는 메모리 하고만 일할 수 있다. 그러니까 오른쪽에 있는 I/O device와는 일할 수 없다. CPU는 정말 정말 빠른 속도로 일하는데 반해 I/O device와 같은 친구들은 너무나 느리기 때문에 같이 일을 하지 않는다고 생각하면 편하다. 그렇다고 해서 CPU가 정말 똑똑한 아이냐? 그렇게 말할 수는 없다. 단지 CPU는 매 클럭마다 메모리(Memory)에서 다음 instruction만 읽어 들여 그 일을 정말 빠르게 수행할 뿐이다. 이러한 이유로 사용자가 하드 디스크로부터의 파일 입출력이나 표준 입출력(키보드, 모니터를 이용한 입출력)과 같은 일들은 CPU가 담당하지 않고 device controller라는 각 device에 붙..