10/18/2016

Process 와 Thread 관련내용 링크

1. Process 와 Thread 관련내용


  • 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