150 likes | 348 Views
Thread. Thread (1). “ process ” defined by the resources it uses and by the location at which it is executing instances of a process fork() system call invoked with a new program counter or thread of control, executing with the same address space. Thread (2). A thread
E N D
Thread SunMoon University
Thread(1) • “process” • defined by the resources it uses and by the location at which it is executing • instances of a process • fork() system call • invoked with a new program counter or thread of control, executing with the same address space. SunMoon University
Thread(2) • A thread • lightweight process(LWP) • consists of a program counter, a register set, and a stack space • share with peer threads • its code section, data section, and operating_system resources such as open file and signal SunMoon University
Thread(3) • The difference between lightweight process and heavyweight process • a traditional or heavyweight process is equal to a task with one thread. • a task does nothing if no threads are in it. • a thread must be in exactly one task. SunMoon University
Thread(4) • 동기 또는 아이디어 • 여러 개의 서브프로그램들로 구성되어 있는 대규모 프로그램에서 • 전체가 하나의 실행단위로 구성된 경우 • a.out 단위 실행 프로세스 • 실행, 준비, 블록의 상태전이를 통해 실행 • 임의의 서브프로그램에서 I/O 요구 전체 프로세스가 블록 됨. • 서브프로그램들을 실행 단위로 만든다면 ? • 하나의 서브프로그램에서 I/O를 요구 해당 서브프로그램만을 블록 시킴. • 프로세스 내의 다른 서브프로그램 독립적인 실행단위로 계속 실행 가능 SunMoon University
Thread(5) [그림3-12]단일 스레드 프로세스(a)와 다중 스레드 프로세스(b) SunMoon University
Thread(6) • 장점 • fine granularity of execution unit increase concurrency • context switching time • thread creation time • the faster and efficiency • compared with heavyweight process SunMoon University
단일스레드와 다중스레드(1) • 단일 스레드 지원 운영체제 • 하나의 프로세스에서 하나의 스레드 실행 • 스레드의 개념 불확실 • MS-DOS • 다중 스레드 지원 운영체제 • 하나의 프로세서에서 여러 스레드 실행을 지원하는 형태 • 프로그램을 다수의 실행 단위로 나누어 실행(다중 프로세싱) • 하나의 프로세스에 다수의 실행 단위로 구분된 자원 공유 - 자원의 생성과 관리의 중복성 최소화 : 효율적 수행 능력 • 스레드는 독립적 수행 가능 - 서버(server)가 많은 요청을 처리할 수 있는 환경 제공 • Windows NT, Solaris 등 SunMoon University
단일스레드와 다중스레드(2) • 스레드 내용 • 스레드 실행시의 상태(실행, 준비 등) • 실행 스택 • 지역 변수 저장을 위한 스레드별 정적 저장소 • 다른 스레드가 공유하는 프로세스의 메모리 및 자원에 대한 접근 SunMoon University
단일스레드와 다중스레드(3) • 단일 스레드 - 하나의 스레드 즉 레지스터와 스택으로 표현 • 다중 스레드 - 각각의스레드와 고유의 레지스터, 스택으로 표현 SunMoon University
The functionality of Thread(6) • With multiple process • Each process operates independently of the others. • Each process has its own program counter, stack pointer, and the address space. • Useful when the jobs performed by the processes are unrelated. SunMoon University
The functionality of Thread(7) • With multiple thread • operate in the same manner as process • States of threads • ready, blocked, running, or terminated • Threads share the CPU, and • only one thread at a time is active • A thread within a process executes sequentially. • threads are not independent of one another. SunMoon University
The functionality of Thread(7) • With multiple thread(continue) • Each thread has its own stack and program counter • Threads • can create the child threads • can block waiting for system call to complete • if one thread is blocked, another thread can run. SunMoon University
Process Coordination/ Synchronization Mutual Exclusion Critical Section Semaphore Monitor SunMoon University
Deadlock SunMoon University