Study/운영체제21 4. Threads - Threading issues fork() and exec() fork() 시스템 호출은 현재 실행 중인 프로세스를 복제하여 자식 프로세스를 생성 자식 프로세스는 부모 프로세스의 모든 자원을 상속 exec() 호출은 현재 프로세스를 다른 프로그램으로 대체 Cancellation : 스레드를 즉시 종료시키는 기능 비동기식 I/O 작업에서 사용 일반적으로 스레드를 종료하기 위해 pthread_cancel() 함수를 사용 Signal handling 프로세스 또는 스레드가 다른 프로세스 또는 운영 체제로부터 수신하는 메시지 Thread-local storage 스레드별로 고유한 데이터를 저장하기 위한 메커니즘 스레드 간에 공유할 필요가 없는 데이터를 저장하고 검색할 수 있음 Scheduler activation (already covere.. 2023. 4. 12. 4. Threads - Thread libraries 1. Thread Libraries Thread library : 프로그래머가 스레드를 쉽게 생성하고 조작할 수 있도록 도와주는 소프트웨어 라이브러리 Examples POSIX Pthreads : POSIX 호환 운영체제에서 멀티스레드 애플리케이션을 작성하기 위한 API Win32 threads Java threads 2. POSIX Pthreads POSIX Threads (pthread)의 API 함수들 1. 스레드를 생성하는 함수 int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void *), void *arg); thread는 스레드 식별자를 저장할 변수의 포인터 attr은 스레드 속성을.. 2023. 4. 12. 4. Threads - Multithreading models 1. Types of Threads User thread: 사용자 수준의 스레드 라이브러리에서 지원되는 스레드 라이브러리 함수 호출에 의해 생성됨 (not system call) 커널은 사용자 스레드와 관련이 없음 사용자 스레드 전환이 커널 스레드보다 빠름 Kernel thread: 커널에서 지원하는 스레드 커널에 의해 생성 및 관리됨 커널별로 Scheduled 프로세스보다 비용이 저렴 user thread보다 더 비쌈 2. Multithreading Models Major issue: user treads 와 kernel threads간의 조화 모델종류 Many-to-one model : 여러 개의 쓰레드가 하나의 커널 스레드에 의해 관리 여러 쓰레드가 동시에 실행될 수 있지만, 커널은 실제로 하나의 .. 2023. 4. 12. 4. Threads - Overview 1. Motivation 대부분의 최신 애플리케이션은 멀티 스레드 스레드는 애플리케이션 안에서 실행된다. 프로세스 생성은 중량이 큰 반면 스레드 생성은 경량 Multiple tasks with the application 을 각 스레드로 구현가능 코드 단순화, 효율성 향상 커널은 일반적으로 멀티 스레드 2. Overview Process : 실행 중인 프로그램 (아이디 공유 O) Thread : 프로그램이 두 개 이상의 동시 실행 작업으로 분할되는 방법 (아이디 공유 X) process보다 작은 단위 프로세스 내의 자원을 공유 -> 각 스레드는 프로세스의 주소 공간에서 실행된다. Thread구성 : Thread ID, program counter, register set, stack, etc. Multi.. 2023. 4. 12. 이전 1 2 3 4 ··· 6 다음