1. Trang chủ
  2. » Công Nghệ Thông Tin

Advanced Operating Systems: Lecture 14 - Mr. Farhan Zaidi

12 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Advanced Operating Systems - Lecture 14: Thread usage. This lecture will cover the following: thread usage paradigms; paper by Hauser et al; exploit CPU parallelism; exploit I/O parallelism; pros and cons of different paradigms;...

CS703 ­ Advanced  Operating Systems By Mr Farhan Zaidi     Lecture No.  14 Overview of today’s lecture    Thread usage paradigms Paper by Hauser et al Pros and Cons of different paradigms Uses of threads  To exploit CPU parallelism   To exploit I/O parallelism    Run two CPUs at once in the same program Run I/O while computing, or multiple I/O Listen to the “window” while also running code, e.g allow commands during an interactive game For program structuring  E.g., timers Paradigms of thread usage (from Hauser  et al paper)      Defer work General pumps Slack processes Sleepers One-shots      Deadlock avoidance Rejuvenation Serializers Encapsulated fork Exploiting parallelism Defer work   A very common scenario for thread usage Client may see unexpected response… something client requested is fired off to happen in the background  Forking off examples     a document print operation Updating a window Sending an email message Issue? What if thread hangs for some reason Client may see confusing behavior on a subsequent request! Pumps    Components of producer-consumer pipelines that take input in, operate on it, then output it “downstream” Value is that they can absorb transient rate mismatches Slack process: a pump used to explicitly add delay, employed when trying to group small operations into batches Sleepers, one­shots   These are threads that wait for some event, then trigger, then wait again Examples:   Call this procedure every 20ms, or after some timeout Can think of device interrupt handler as a kind of sleeper thread Deadlock avoiders  Thread created to perform some action that might have blocked, launched by a caller who holds a lock and doesn’t want to wait Bohr­bugs and Heisenbugs    Bruce Lindsey, refers to models of the atom A Bohr nucleas was a nice solid little thing Same with a Bohr-bug You can hit it reproducibly and hence can fix it A Heisenbug is hard to pin down: if you localize an instance, the bug shifts elsewhere Results from non-deterministic executions, old corruption in data structures, etc… Task rejuvenation  A nasty style of thread    Application had multiple major subactivities, such as input handler, renderer Something awful happened So create a new instance and pray Others  Serializers: a queue, and a thread that removes work from it and processes that work item by item  for (;;) { get_next_event(); handle_event(); }   Concurrency exploiters: for multiple CPUs Encapsulated forks: Hidden threads used in library packages .. .Lecture? ?No.  14 Overview of today’s? ?lecture    Thread usage paradigms Paper by Hauser et al Pros and Cons of different... thing Same with a Bohr-bug You can hit it reproducibly and hence can fix it A Heisenbug is hard to pin down: if you localize an instance, the bug shifts elsewhere Results from non-deterministic executions,... reason Client may see confusing behavior on a subsequent request! Pumps    Components of producer-consumer pipelines that take input in, operate on it, then output it “downstream” Value is that

Ngày đăng: 05/07/2022, 12:25

Xem thêm:

Mục lục

    CS703 - Advanced Operating Systems

    Overview of today’s lecture

    Paradigms of thread usage (from Hauser et al paper)

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN