Dr. Alice Fisher is the department head; she has unlimited access to the departmental payroll and personnel records, unlimited access to DreadcOS, but no access to technical information about the Army or Iraqui projects. Alice Fisher directly supervises Ken Liu, who does most of the programming for DreadcOS. Dr Fisher also supervises Maria Santos, the department secretary. Maria has no access to technical information but handles the all administrative functions.
Steve Price is the lead worker on the Army project and is in charge of major parts of DreadcOS. He supervises Jim Svenson, who works on the Army project.
Aaron Halevi is the lead worker on the Iraqi project and is was the first to propose the development of DreadcOS. He supervises V. Patil and Mehmet Babaoglu who are working on the Iraqui project.
Part a: Draw out the access matrix for Dreadco's resources, resource users, and access rights, to the extent they are documented in the above description.
Part b: Give the capability lists that the describe your soultion to part a.
Part c: Give the access control lists that the describe your soultion to part a.
On this machine, the MMU allows a running program to access any two fields of memory, one designated IF, the current instruction field, and the other designated DF, the current data field. Pointers 1 word long can point to any item in a single field; pointers to data objects are always interpreted in terms of the current data field. The instructions for changing IF and DF are privileged, as are all I/O instructions. The U bit, which is part of the system state, determines whether it is legal to execute a privileged instruction. An attempt to execute a privileged instruction when in user state (U=1) causes a trap. Physical memory consists of from 1 to 8 fields of memory. Field zero is dedicated entirely to the system. Traps reset U. The instruction sequence to return from trap may set U, if needed.
Part a: Suppose our operating system runs user programs in user state. Functions in a user program that call other functions in the same program use the normal JSR instruction for the control transfer. How can a user program call a system function?
Part b: User programs can easily pass two parameters to a function, one in the AC register and one in the MQ register. What if a user program needs to call a system function, passing a pointer to a buffer in it's data field to a system function. How can the system code access the buffer?
Part a: Outline the implementation of far_jump(a,f).
Part b: Is this system based on capability lists, access control lists, or something else. Justify your answer!