- Process관련사항
http://www.tldp.org/LDP/tlk/kernel/processes.html
- Thread관련사항
https://ko.wikipedia.org/wiki/%EC%8A%A4%EB%A0%88%EB%93%9C
1.1. Thread의 종류
User Thread 와 Kernel Thread 장단점 및 스케쥴
http://www.slideshare.net/kasunbg/scheduler-activations-effective-kernel-support-for-the-userlevel-management-of-parallelism
http://www.tldp.org/FAQ/Threads-FAQ/Types.html
1.2 Process 와 Thread 비교
https://ko.wikipedia.org/wiki/%EC%8A%A4%EB%A0%88%EB%93%9C#.EC.82.AC.EC.9A.A9.EC.9E.90_.EB.A0.88.EB.B2.A8_.EC.8A.A4.EB.A0.88.EB.93.9C_.28User-Level_Thread.29
2. OS의 Scheduling
2.1 Linux Kernel Scheduling
https://www.cs.columbia.edu/~smb/classes/s06-4118/l13.pdf
2.2 Pthread Scheduling
http://www.icir.org/gregor/tools/pthread-scheduling.html
http://man7.org/linux/man-pages/man3/pthread_setschedparam.3.html
http://man7.org/linux/man-pages/man3/pthread_attr_setscope.3.html
http://pubs.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_08.html#tag_02_08_04_01
http://www.gnu.org/software/libc/manual/html_node/Priority.html
http://stackoverflow.com/questions/6108988/understanding-linux-scheduling-when-pthreads-are-involved
3. RTOS 소개
- 무료 RTOS 소개 및 관련소스
https://www.osrtos.com/
- RTOS의 기본개념 및 상용 RTOS 비교
http://mesl.khu.ac.kr/lecture/doc/esl2/closed.pxa255/esl2-02-rtos-p.pdf
4. Concurrent Programming
- OS에 나오는 기본내용
https://ko.wikipedia.org/wiki/%EC%8B%9D%EC%82%AC%ED%95%98%EB%8A%94_%EC%B2%A0%ED%95%99%EC%9E%90%EB%93%A4_%EB%AC%B8%EC%A0%9C
https://en.wikipedia.org/wiki/Dining_philosophers_problem
https://en.wikipedia.org/wiki/Concurrent_computing
https://en.wikipedia.org/wiki/Parallel_computing
5. Deadlock 과 LiveLock
Case 1.
이해하기도 간단하며,
Process P1는 Resource R2 이미 Lock 을 하였고,이를 사용중이지만,
현재 R1을 사용하기를 원하지만, 이미 P2에 의해 Lock이되어 사용하지 못한다.
Process P2는 Resouce R1 이미 Lock을 하였고, 이를 사용중이지만,
현재 R2를 사용하기를 원하지만, 이미 P1에 의해 Lock이되어 사용하지 못한다.
Case 2.
4개의 Process가 1개의 자원을 가지고 있을 경우, Deadlock
Blue line: Process의 실행의 Time line을 의미 한다.
Green : Process의 시작 시점
Red : Process의 종료 시점
Gray : Resource 를 의미 하며, 크기는 Time을 의미 한다.
Black line : lock 을 사용하는 semaphore 가 될수 있겠다.
위 상황은 binary semaphore를 4개를 사용하는 것인지 좀 헷갈림.
1개의 Resource와 2개의 lock으로 인하여 발생하는 Deadlock
결론은 기본개념과 유사하며, 2개의 mutex가 있을 경우,
이미 한 Process에 의하여 Resource에 1st Lock 걸린 상태에서, 스케쥴에의해
다른 한 Process가 동시에 Resource에 접근을 할 경우, 다시 2nd Lock이 걸리며,
결론적으로 진입점 인 Lock 이 둘다 Lock으로 변경이 되어 Deadlock이 됨.
https://en.wikipedia.org/wiki/Deadlock
https://en.wikipedia.org/wiki/Starvation_(computer_science)
Linux의 동기화
https://en.wikipedia.org/wiki/Synchronization_(computer_science)#Synchronization_in_Linux