운영 체제 실험 보고서 3-16281028

실험 삼동기와 통신
실험 목적
  • 시스템 호출에 대한 진일보한 이해.
  • 프로세스 컨텍스트 전환
  • 동기화 및 통신 방법.

  • 실험 문제
  • fork의 방식으로 4개의 프로세스 P1, P2, P3, P4를 생성하고 각 프로세스는 자신의 이름을 출력한다. 예를 들어 P1 출력'I am the process P1'을 출력한다.P1이 가장 먼저 집행하고 P2, P3이 서로 밀어붙여 집행하며 P4가 마지막에 집행하도록 요구한다.여러 차례의 테스트를 통해 실현이 정확한지 검증하다.

  • 실험 결과
    P2와 P3 사이에 상호 배척 자물쇠를 추가하고 P2와 P3은 임계 자원에 접근하여 실행한다. 그 다음에 P2 또는 P3이 최소한 하나의 프로세스가 완성되면 fork를 실행하면 P4 프로세스가 발생한다.
    코드:
    #include 
    #include 
    #include 
    #include 
    #include 
    #include 
    
    int main(void){
    pthread_mutex_t mutex;
    pthread_mutex_init(&mutex,NULL);
    
    pid_t pid1 = fork();
    if(pid1 == 0){
    	printf("I am the process P1
    "); return 0; } waitpid(pid1, NULL, 0); pid_t pid2 = fork(); if(pid2 == 0){ pthread_mutex_lock(&

    좋은 웹페이지 즐겨찾기