Warning:
JavaScript is turned OFF. None of the links on this page will work until it is reactivated.
If you need help turning JavaScript On, click here.
This Concept Map, created with IHMC CmapTools, has information related to: ch6 os proc, process and threads: process- consists of of an execution environment together with one or threads thread- is the os abstraction of an activity contains address spaces: is a unit of management of a process's virtual memory. region: is an area of contiguous virtual memory that is accessible by the threads of the owning process each region is specified by: -lowest virtual address & size -read/write/execute permissions for the process's threads -whether it can be grown upwards or downwards shared memory region: is one that is backed by the same physical memory one or more regions belonging to other address spaces uses of shared regions are: -libraries-library code can be very large and would waste considerable memory if it was loaded separately into every process that used it -kernel-often kernel code and data are mapped into every address space at the same location -data sharing and communication- two processes, or a process and the kernel, might need to share data in order to cooperate on some task, architectures for multi threaded servers: consists of worker pool architecture: ther server creates a fixed pool of worker threads to process the requests when it starts up., Threads: advantages of enabling client and server processes to possess more than one thread enables servers to maximize their throughput, number of requests processed per sec has thread synchronization: prgramming a multi threaded process requires great care, the main issue are sharing of objects and the techniques used for thread coordination and cooperation. I/O and worker threads use shared queues to transfer requests in some server threading architectures, creation of a new process: creation of a new process can be separated into two aspects: -the choice of a targe host -the creation of an execution environment has creation of a new execution environment: once the host computer has been selected, a new process requires an execution environment consisting of an address sapce with initialized contents, Threads: advantages of enabling client and server processes to possess more than one thread enables servers to maximize their throughput, number of requests processed per sec has threads within clients: 1st thread generates results to be passed to the server 2nd thread can which can performt he remote method invocation and blocks so the 1st thread can compute further results, threads vs multiple processes: threads are cheaper to create and manage than processes and resource sharing can be achieved more efficiently between threads than between processes cuz threads share an execution environment uses contest switching: takes place when switching between threads -saves the processors original register state and loading of new state -a transfer to a new protection domain, Threads: advantages of enabling client and server processes to possess more than one thread enables servers to maximize their throughput, number of requests processed per sec has threads programming: is a concurrent programming, common thread prgramming language is C, POXIS are pthreads. also Java which has methods for creating threads by destroying them and syncing them, architectures for multi threaded servers: consists of thread per connection architecture: associates a thread with each connection, Threads: advantages of enabling client and server processes to possess more than one thread enables servers to maximize their throughput, number of requests processed per sec has threads vs multiple processes: threads are cheaper to create and manage than processes and resource sharing can be achieved more efficiently between threads than between processes cuz threads share an execution environment, Threads: advantages of enabling client and server processes to possess more than one thread enables servers to maximize their throughput, number of requests processed per sec has thread lifetimes: a new thread is created on the same java virtual machine as its creator, in the suspended state. threads can be run by priority that will run in preference to lower or higher., process and threads: process- consists of of an execution environment together with one or threads thread- is the os abstraction of an activity contains Threads: advantages of enabling client and server processes to possess more than one thread enables servers to maximize their throughput, number of requests processed per sec, process and threads: process- consists of of an execution environment together with one or threads thread- is the os abstraction of an activity contains creation of a new process: creation of a new process can be separated into two aspects: -the choice of a targe host -the creation of an execution environment, architectures for multi threaded servers: consists of thread per object architecture: associates a thread with each remote object, architectures for multi threaded servers: consists of thread per request architecture: the I/O thread spawns a new worker thread for each request and workers destroy theirselves when it has processed the request against its designated remote object., creation of a new process: creation of a new process can be separated into two aspects: -the choice of a targe host -the creation of an execution environment has choice of process host: the process allocation decision is a matter of policy transfer policy- determines whether to situate a new process locally or remotely location policy-determines which node should host a new process selected for transfer process policies may be static or adaptive. load manger component in heirarchical. sender initiated- load sharing algorithms, the node that requires a new process to be created is responsible for initiating the transfer document migratory-load sharing systems can shift load at any time, not just when a process is created, Threads: advantages of enabling client and server processes to possess more than one thread enables servers to maximize their throughput, number of requests processed per sec has thread scheduling: preemptive scheduling- a thread may be suspended at any point to make way for another thread nonpreemptive scheduling- a thread runs until it makes a call to the threading system, the system may deschedule it and schedule another thread to run, Threads: advantages of enabling client and server processes to possess more than one thread enables servers to maximize their throughput, number of requests processed per sec has architectures for multi threaded servers:, Threads: advantages of enabling client and server processes to possess more than one thread enables servers to maximize their throughput, number of requests processed per sec has threads implementation: many kernels provide native support for multi threaded processes, windows, linux, solaris, mach. they provide thread creation and management system calls, and schedule individual threads. when kernels do not support multithreads they suffer from: -threads within a process cant take advantage of a multiprocessor, -a thread that takes a page fault blocks the entire process and all threads with it, -threads within different processes cant be scheduled according to a single scheme of relative prioritization. user level threads implementations have advantages over kernel level: -certain threads are less costly -since the thread scheduling is done outside the kernel there can modifications to suit apps, -more user level threads can be supported than a kernel can provide. kernel notifies user level scheduler by: -virtual processor allocated -SA blocked -SA unblocked -SA preempted