운영체제 과제[Posix Timer 구현(Linux&C언어)]
- 최초 등록일
- 2020.11.22
- 최종 저작일
- 2019.11
- 6페이지/ 어도비 PDF
- 가격 5,000원
목차
1. Problem Definition
2. Algorithm
3. S/W Diagram
4. Program Sources
5. Conclusion
본문내용
1. Problem Definition
time-triggered thread 를 c 언어로 리눅스에서 직접 구현해보았습니다. POSIX Timer 를 구현하여 각 쓰레드에 signal 을 주는 방식으로 동작하게 했습니다.
2. Algorithm
프로그램이 시작되면 쓰레드의 condition과 mutex를 선언하고 main에서 3개의 쓰레드와 POSIX timer가 set & create 됩니다. 만들어진 POSIX timer는 1/100초마다 timer handler에서 처리됩니다.
3 개의 쓰레드는 생성되면서 0,1,2 의 쓰레드 아이디를 각 쓰레드에 전달하면서 tt_thread 라는 함수를 실행합니다. tt_thread 에서는 전달받은 쓰레드 아이디로 어떤 쓰레드가 넘어왔는 지 알 수 있도록 프린트문을 출력하도록 하였습니다.
그리고 tt_thread_register 함수를 호출하여 구조체로 선언된 TCB 배열에 쓰레드 아이디와 주기 정보를 넣고 condition 을 초기화합니다. 주기 정보는 임의로 주었습니다. condition 이 wait 상태가 될 때까지 loop 를 돌면서 쓰레드 아이디와 현재 시간을 출력하게 됩니다. wait 상태가 되고, 그것을 확인하도록 반환 값을 1 로 가지는 함수는 tt_thread_wait_invocation 함수입니다. tt_thread_register 함수와tt_thread_wait_invocation 함수를 어떤 쓰레드가 호출했는 지 알 수 있도록 쓰레드 아이디를 매개변수로 넘겨 주었고 각 함수에서 출력하여 터미널에서 확인 할 수 있게 했습니다.
참고 자료
없음