1 / 15

Thread

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

Download Presentation

Thread

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Thread SunMoon University

  2. 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

  3. 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

  4. 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

  5. Thread(4) • 동기 또는 아이디어 • 여러 개의 서브프로그램들로 구성되어 있는 대규모 프로그램에서 • 전체가 하나의 실행단위로 구성된 경우 • a.out 단위 실행  프로세스 • 실행, 준비, 블록의 상태전이를 통해 실행 • 임의의 서브프로그램에서 I/O 요구  전체 프로세스가 블록 됨. • 서브프로그램들을 실행 단위로 만든다면 ? • 하나의 서브프로그램에서 I/O를 요구  해당 서브프로그램만을 블록 시킴. • 프로세스 내의 다른 서브프로그램  독립적인 실행단위로 계속 실행 가능 SunMoon University

  6. Thread(5) [그림3-12]단일 스레드 프로세스(a)와 다중 스레드 프로세스(b) SunMoon University

  7. 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

  8. 단일스레드와 다중스레드(1) • 단일 스레드 지원 운영체제 • 하나의 프로세스에서 하나의 스레드 실행 • 스레드의 개념 불확실 • MS-DOS • 다중 스레드 지원 운영체제 • 하나의 프로세서에서 여러 스레드 실행을 지원하는 형태 • 프로그램을 다수의 실행 단위로 나누어 실행(다중 프로세싱) • 하나의 프로세스에 다수의 실행 단위로 구분된 자원 공유 - 자원의 생성과 관리의 중복성 최소화 : 효율적 수행 능력 • 스레드는 독립적 수행 가능 - 서버(server)가 많은 요청을 처리할 수 있는 환경 제공 • Windows NT, Solaris 등 SunMoon University

  9. 단일스레드와 다중스레드(2) • 스레드 내용 • 스레드 실행시의 상태(실행, 준비 등) • 실행 스택 • 지역 변수 저장을 위한 스레드별 정적 저장소 • 다른 스레드가 공유하는 프로세스의 메모리 및 자원에 대한 접근 SunMoon University

  10. 단일스레드와 다중스레드(3) • 단일 스레드 - 하나의 스레드 즉 레지스터와 스택으로 표현 • 다중 스레드 - 각각의스레드와 고유의 레지스터, 스택으로 표현 SunMoon University

  11. 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

  12. 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

  13. 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

  14. Process Coordination/ Synchronization Mutual Exclusion Critical Section Semaphore Monitor SunMoon University

  15. Deadlock SunMoon University

More Related