synchtest.c 파일은 os161에서 제공하는 동기화 예제 파일이다.
일단 수정하기 전에 원본 코드를 한번 돌려보자.
cd ~/os161/root
sys161 kernel
# os161 실행 후 바로 아래 명령어 실행. 그러면 알아서 synchtest.c 실행됨.
sy161
(결과를 찍어둔게 없네ㅜㅠ 일단 원본 코드는 이런 역할을 하는구나 감을 익히자.)
그 다음 q를 입력해서 os161을 종료한다.
이제 synchtest.c 원본 코드를 분석해보자.
vi로 파일을 열면 무시무시한 심령사진같은게 튀어나온다
이제 코드가 쭉 있는데, 우리가 신경써야 할 부분은 크게 다음과 같다.
1번은 세마포어를 정의하는 부분이다.
2번은 1번에서 정의한 세마포어들을 초기화하는 부분이다.