신호처리

    [운영체제]스레드와 관련된 문제들

    [운영체제]스레드와 관련된 문제들

    다중 스레드 프로그램을 설계할 때 고려해야 할 몇 가지 문제들을 살펴보자 [Fork() 및 Exec 시스템 콜] 만일 한 프로그램의 스레드가 fork()를 호출하면 새로운 프로세스는 모든 스레드를 복제해야 하는가 아니면 한 개의 스레드만 가지는 프로세스여야 할까? UNIX기종은 이 두 가지 버전 fork()를 모두 제공한다. exec()의 경우 시스템 콜을 하면 exec()의 매개변수로 저장된 프로그램이 모든 스레드를 포함한 전체 프로세스를 대체시킨다. 응용 프로그램에 따라 어떤 fork()를 선택할 지 정해진다. fork()를 한 후 exec() 시스템 콜을 호출한다면 모든 스레드를 다 복제해서 만들어주는 것은 불필요하다. 이런 경우에는 fork() 시스템 콜을 호출한 스레드만 복사해주는 것이 적절한다..