Computer Science
[운영체제 기초] 9. 쓰레드와 프로세스 동기화
[운영체제 기초] 9. 쓰레드와 프로세스 동기화
2022.06.08학습목표 쓰레드와 프로세스의 차이를 설명할 수 있다. 프로세스 동기화는 무엇이며 어떤 상황에서 사용되는지에 대해 설명할 수 있다. 1. 쓰레드(Thread)란 무엇인가? 쓰레드는 프로그램 내부의 흐름, 맥을 의미합니다. 혼동하지 말아야할 점은 프로세스는 메모리에 적재된 프로그램을 의미하고 쓰레드는 프로세스의 안에서의 실행 흐름을 의미합니다. 쓰레드는 프로세스의 메모리 공간과 파일, I/O등의 자원을 공유하지만 다른 프로세스의 메모리와 자원에는 접근할 수 없다는 특징이 있습니다. 2. 쓰레드(Thread) vs 프로세스(Process) 하나의 프로세스에는 기본적으로 1개의 쓰레드(Main thread)가 있으며 경우에 따라서는 여러개의 쓰레드가 존재할 수 있습니다. 쓰레드의 개수에 따라 프로그램을 부르는 ..
Statement와 Prepared Statement의 특징
Statement와 Prepared Statement의 특징
2021.05.19Statement와 Prepared Statement의 특징 1. Prepared Statement란 무엇인가? Prepared Statement라는 단어를 해석해보면 '준비된 문장' 정도로 해석이 가능하다. 그런데 무엇이 준비되었다는 뜻일까? 바로 쿼리가 준비되었다는 의미이다. 이미 쿼리실행계획 분석과 컴파일이 완료되어서 DBMS의 캐시에 준비되어있는 쿼리를 사용한다는 의미이다. 2. Prepared Statement VS Statement 위 그림은 DBMS가 쿼리를 실행하는 절차이며, 각 부분에서 처리하는 내용은 다음과 같다. 1. Parsing (Query의 문법적, 의미적 오류 체크, 재사용 가능 SQL 확인, 쿼리실행계획 수립 등) 2. Execution (쿼리를 실행한다.) 3. Fetch(..
[운영체제 기초]8. CPU 스케쥴링
[운영체제 기초]8. CPU 스케쥴링
2021.02.09CPU 스케쥴링 학습목표 CPU 스케쥴링 방법들과 각각의 차이점들에 대해 설명할 수 있다. 1. CPU스케쥴링이란 뭘까? Ready Queue의 프로세스를 어떤 순서로 처리할 것인지 계획을 세우는 것이다. 2. CPU스케쥴링의 방식 선점(Preemptive) 처리중인 프로세스가 있어도 다른 프로세스를 처리할 수 있다. 비선점(Non-preemptive) 처리중인 프로세스가 끝나기 전에는 다른 프로세스를 처리하지 않는다. 3. CPU스케쥴링의 기준 CPU스케쥴링의 기준으로는 다음과 같은 항목들이 있다. CPU Utilization(CPU 이용률) Throughput(처리율) Turnaround time(반환시간) Waiting time(대기시간) Response time(응답시간) 4. CPU스케쥴링 알고..
[운영체제 기초]7. 프로세스 관리
[운영체제 기초]7. 프로세스 관리
2021.02.09프로세스 관리 학습목표 OS가 프로세스를 관리하는 방법에 대해 설명할 수 있다. 1. 프로세스란? 프로세스는 메인메모리에서 실행중인 프로그램(program in execution)이다. Task, Job 이라고도 불린다. 2. 프로세스의 생성과 종료 프로세스의 생성 프로세스는 프로세스에 의해 만들어진다. OS가 메인메모리에 적재되면 가장 먼저 init이라는 프로세스를 생성하고, init은 여러 프로세스를 생성한다. 프로세스들은 다시 자식 프로세스를 생성하는 식으로 확장하게 되면서 프로세스 트리를 그리게 된다. 프로세스는 자기 자신과 부모 프로세스를 식별할 수 있는 고유한값을 가지고 있는데 각각 PID(Process Identifier), PPID(Parent Process Identifier)라고 한다...