IT-222 Operating System

Tuesday, January 15, 2008

Assignment: Exercises

1.A deadlock is a situation wherein two or more competing actions are waiting for the other to finish, and thus neither ever does.

A Starvation is similar in effect to deadlock. Two or more programs become deadlocked together, when each of them wait for a resource occupied by another program in the same set. On the other hand, one or more programs are in starvation, when each of them is waiting for resources that are occupied by programs, that may or may not be in the same set that are starving. Moreover, in a deadlock, no program in the set changes its state.

A race is a synchronozation problem between two processes vying for the same resources.

2. Real-life example of deadlock is the traffic.Real-life example of starvation is in the staircase, when two people meet at the opposing side. The staircase can be accomodated by one person.Real-life example of Race is when two people arrived at the same time on the same door.

3. Four Necessary Conditions for Deadlock:The presence of deadlock in a systems is characterized by these four necessary conditions. The term necessary means that if there is deadlock then all four must be present.

a. Mutual exclusive resource access - A resource acquired is held exclusively, i.e., it is not shared by other processes.

b. No preemption - A process' resources cannot be taken away from it. Only the process can give up its resources.

c. Hold and Wait - A process has some resources and is blocked requesting more.

d. Circularity - This means that there is a circular chain of two or more processes in which the resources needed by one process are held by the next process.

4. Algorithm for prevention of deadlock and starvation:public boolean tryAcquire( int n0, int n1, ... ) { if ( for all i: ni ≤ availi ) { // successful acquisition availi -= ni for all i; return true; // indicate success } else return false; // indicate failure}init) Semaphore s = new Semaphore(1,1);Thread A Thread B-------- --------s.acquire(1,0); s.acquire(0,1);s.acquire(0,1); s.acquire(1,0);Thread B--------while(true) {s.acquire(0,1);if ( s.tryAcquire(1,0) ) // if second acquisition succeedsbreak; // leave the loopelse {s.release(0,1); // release what is heldsleep( SOME_AMOUNT); // pause a bit before trying again}}run action s.value--- ------ -------(1,1)A s.acquire(1,0) (0,1)B s.acquire(0,1) (0,0)A s.acquire(0,1) A blocks on secondB s.tryAcquire(1,0) => falseB s.release(0,1) (0,1)A s.acquire(0,1) (0,0) A succeeds on second

5.a. Deadlock can be occurred. When the bridge is destroyed.
b. When there are no traffic lights.
c. To prevent deadlock make all the road to be one-way.

6.a. This is not a deadlocked.
b. There is no blocked processes.
c. P2 can freely request on R1 and R2.
d. P1 can freely request on R1 and R2.
e. Both P1 and P2 have requested R2.1. P1 will wait after the request of P2.2. P2 will wait after the request of P1.

Thursday, December 13, 2007

Case Study: Memory Management in Linux


To highlight the concets presented in this chapter, we end with a more specific example of how memory managed in the Linux operating system. Although Linux memory management has many features in common with UNIX, it has some unique characteristics, and it is quite complex.



Virtual Memory in Linux managed using a three-level table hierarchy, which acoomodates both 64- and 32-bit architectures. For the example show in Figure 3.18, each virtual address is made up of four filds, which are used by the Memory Manager to locate the instruction or data requested:



Main Directory Middle Directory Page Table Directory Actual Page Offset


Figure 3.18 refers to the following virtual address:
Job: 1 Page Table: 3 Page: 2 Line:214



Each job has its own entry in the main directory, which has pointers to each job's middle director. A job's middle directory contains pointers to its corresponding page table directories. In turn, each page table directory has pointers to the actual pages, as shown in Figure 3.18. Finally, the page offset field is used to locate the instruction or data within the requested page (Line 214).


Consider the case where main memory consists of 64 page frames and Job 1 resists 15 page frames. The buddy algorithm first rounds up the request to a power of 2 ( in this case 2 to the 4, which is 16). The group of 64 page frames is divided into two page frames that can satisfy the request, so the job's pages are copied into the page frames as shown in Figure 3.19(a). When job 2 requests 8 page frames, the second page up to 16 page frames is divided in two and the lower half is given to Job 2, as show in Figure 3.19 (b).
When Job 2 releases its page frames they are combined with the upper 8 page frames form a group of 16 page frames, as shown in Figure 3.19(c).


The Page replacement algorithm used by the Linux is an expanded version of the clock algorithm presented in the page replacement policies section of this chapter. Instead of using a single reference bit, Linux uses an 8-bit byte to keep track of a page's activity, which is referred to as its age. Each time a page is referenced, this age variable is incremented. Behind the scenes, at specific intervals, the Memory Manager checks each of use age variables and decreases their value by one. The result of this interaction is it, if a page is not referenced frequently, then its age variable will drop to zero and will be a good candidate for replacement if a page swap is necessary. On the other hand, a page that is frequently used will have a large age value and will not be a good choice for replacement. Therefore, we can say that Linux uses a form of least frequently used (LRU) replacement policy.

Wednesday, November 21, 2007

2.)

The first reason why regional bank might decide to buy 6 server computers than a supercomputer and it is applicable than a one computer.
The another one is if the bank buy a 6 server computer its because if a computer will not function anymore, there are still five remaining, computers that can work faster than a supercomputer and if the supercomputer will not function anymore, there will be no backup of all the data that have save in the supercomputer and thye cannot retrieve the data anymore..

Operating System News

November 20, 2007 (Computerworld) -- The flaw in Windows 2000's random number generator uncovered by Israeli researchers is a vulnerability -- but not a security vulnerability, Microsoft Corp. said late last week, as it left users wondering if newer versions of the operating system shared the same problem.
In a paper published earlier this month,
Benny Pinkas of the University of Haifa and two Hebrew University graduate students, Zvi Gutterman and Leo Dorrendorf, described how attackers could exploit a weakness in Windows' pseudo-random number generator (PRNG) to predict encryption keys generated by the operating system and its applications.
After
reverse-engineering the algorithm used to power the PRNG, Pinkas and his colleagues found that they could easily predict its future results and reveal what it had produced in the past. They could then compute both future and previously used encryption keys.
The past was most important to Pinkas. "For you as a user, it means that if you are managing sensitive information today, it is not enough for you to verify that your computer hasn't been compromised in the past," said Pinkas in a follow-up interview Monday. "You should also worry about future attacks, since a compromise in the future might reveal the sensitive information used today.
"In the security world, this is called an attack on 'forward secrecy,' and is taken very seriously," he added for emphasis.
Last week, Microsoft responded to Pinkas' paper with several statements sent to Computerworld in which it first acknowledged that the PRNG had a "local information disclosure vulnerability" but then denied that it had a "security vulnerability."
"There is no security vulnerability," Bill Sisk, the company's security response communications manager said in the statement issued through Microsoft's outside public relations firm. "Information is not disclosed inappropriately to unauthorized users on any supported Windows systems. In all cases discussed in the claim, information is visible only to the users themselves or to another user logged on to the local system with administrator credentials."
Microsoft's justification that the PRNG issue was not a security vulnerability didn't sit well with Pinkas, who argued the other side. "Applied alone, [our attack] does not enable unauthorized parties to access the system, but it does disclose to authorized users information which they are not supposed to learn," he said Monday.
Symantec Corp., which posted its own analysis last week, issued a low-level alert for it today to customers of its DeepSight threat network. Like Microsoft,
Symantec didn't classify the threat as a security vulnerability, but instead called it a design error.