Concurrency - What You Should Know
Concurrency - What You Should Know
Having completed the podcasts and reading for the section on concurrency, you
should be able to answer the following questions. These questions relate to the
theory of concurrent programming; you have already been tested on the
practice of concurrent programming with the concurrent programming task, so
it will not be tested again with the in-class tests. Feel free to discuss with Emma
anything that you are unsure about.
1. What sorts of problems arise specifically because of the use of threads
accessing common resources?
2. What is a race condition?
3. What is the critical section problem?
4. What is an atomic action?
5. What is synchronization?
6. Why is interrupt disabling not a general solution to the critical section
problem?
7. How do special instructions help solve the critical section problem?
8. How do mutex locks, semaphores and monitors solve the critical section
problem? What are the pros/cons of the different approaches?
9. What is the difference between a strong and a weak semaphore?
10. Describe the four classic synchronisation problems that were presented
in podcasts, highlighting the synchronisation issues, and explain how
concurrent programming principles can solve them.
12. Explain the difference between tree-structured directories and acyclic-graphic directory
structures.
13. What is partitioning? How does a partition relate to physical devices?
14. What is a boot control block?
15. What is a volume control block (AKA superblock, master file table)?
16. What is file system mounting and why is it needed?
17. What are the two key issues related to secondary storage management?
18. What are the advantages and disadvantages of contiguous storage of files?
19. If a file is broken into portions for storage, what influences the choice of portion size?
20. What is the difference between chained and indexed allocation of space for files? What
advantages/disadvantages do they have over contiguous allocation?
21. What are the three main ways of tracking free space, and their pros and cons?
22. What is the name of the data structure in the UNIX file system that is effectively the file
control block?
23. What is a vnode and what is it used for?
24. Describe the UNIX virtual file system implementation.
25. Explain the four sections of the NTFS volume layout.
26. How does NTFS support recoverability of file systems?
27. Explain the principle of client-server operations for remote file systems.
Operating Systems Security – What you should know.
Having completed the podcasts and reading for the section on operating systems
security, you should be able to answer the following questions. Feel free to
discuss with Emma any that you are unsure about.
1. What are the three objectives of operating systems security?
2. What are the types of threats to operating systems security?
3. How do (or should) operating systems protect against security threats?
4. What different forms of authentication are available for OS users? What
are their pros and cons?
5. Describe different forms of access control.
6. What are the motivations for intrusion detection systems?
7. What types of malware threaten OS security?
8. What is the range of defences that can be deployed against malware?
9. What is operating system hardening?
10. How do the following contribute to OS hardening:
a. Initial installation
b. User and group configuration
c. Resource controls
d. Additional security
e. Testing
f. Logging
g. Backup and archive