0% found this document useful (0 votes)
59 views

Concurrency - What You Should Know

This document contains questions related to the topics of concurrency, deadlocks and starvation, memory management, virtual memory management, I/O management, file management, and operating systems security. It is a study guide for exams on these topics, with over 200 questions in total across the different sections. The questions test understanding of concepts like race conditions, critical sections, semaphores, deadlocks, paging, virtual memory, I/O scheduling, file systems, and OS security defenses.

Uploaded by

Saira Ali
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
59 views

Concurrency - What You Should Know

This document contains questions related to the topics of concurrency, deadlocks and starvation, memory management, virtual memory management, I/O management, file management, and operating systems security. It is a study guide for exams on these topics, with over 200 questions in total across the different sections. The questions test understanding of concepts like race conditions, critical sections, semaphores, deadlocks, paging, virtual memory, I/O scheduling, file systems, and OS security defenses.

Uploaded by

Saira Ali
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 6

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.

Deadlocks and Starvation – What you should know.


Having completed the podcasts and reading for the section on deadlocks, you
should be able to answer the following questions. Feel free to discuss with Emma
any that you are unsure about.
1. What is starvation?
2. What are the four conditions for deadlock?
3. What is livelock?
4. What are the pros and cons of the three different strategies for handling
deadlock?
5. How does deadlock prevention work?
6. Which of the four deadlock preconditions cannot be prevented?
7. How can you prevent each of the other three?
8. Why does deadlock prevention lead to resource under-commitment?
(What is resource under-commitment?)
9. How does deadlock avoidance work?
10. What is the difference between resource allocation denial and process
initiation denial (in the context of deadlock avoidance)?
11. What is the banker’s algorithm, and how does it determine the difference
between a safe state and an unsafe state?
12. How can you detect a deadlock?
13. How frequently should you check for deadlocks?
14. How can you recover from a deadlock? (What are the pros and cons of
different strategies?)
Memory Management – What you should know.
Having completed the podcasts and reading for the section on memory
management, you should be able to answer the following questions. Feel free to
discuss with Emma any that you are unsure about.
1. What aspects of memory management are handled by the operating
system?
2. What is the different between a logical and a physical address?
3. What is the memory management unit?
4. What is the difference between static and dynamic linking?
5. How does dynamic linking work?
6. What is swapping?
7. What is partitioning?
8. How are base and limit registers used?
9. What is the difference between fixed and dynamic partitioning?
10. What are internal and external fragmentation? Which memory
management strategies lead to each type of fragmentation? How can they
be minimised?
11. What types of placement policy are used in dynamic partitioning? Which
performs best and why?
12. How does the buddy system of partitioning work? What are its benefits?
13. How does segmentation work for memory management?
14. What hardware is needed to support segmentation?
15. Why is segmentation known as a non-transparent form of memory
management?
16. How does paging work?
17. What is the relationship between a page and a frame?
18. What hardware is needed to support paging?
19. What is effective access time and how is it calculated?
20. How are addresses interpreted for different memory management
schemes?
21. What are shared pages and how are they used?
Virtual Memory Management – What you should know.
Having completed the podcasts and reading for the section on virtual memory
management, 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 advantages of virtual memory?
2. What is the sequence of events that occurs when an address is needed
that is not already loaded into main memory?
3. What is demand paging?
4. What changes to hardware/data structures are needed to support
demand paging?
5. What is a page fault?
6. What happens when a page fault occurs?
7. What are multi-level (hierarchical) page tables, and why are the used?
8. What is an inverted page table and how does it work?
9. How are virtual segmentation and paging combined? Why would you
want to?
10. Why can virtual paging lead to a significant increase in the effective access
time?
11. What is the purpose of the page replacement algorithm?
12. Describe first-in-first-out page replacement algorithm.
13. What is Belady’s anomaly? Illustrate it with an example.
14. What would be the optimal page replacement algorithm? Why is it
impossible to implement?
15. What is least-recently-used algorithm? Why is it not always used?
16. What is the frame allocation problem?
17. What are the pros and cons of fewer frames per process?
18. What is priority-based frame allocation?
19. What are the differences between global and local frame replacement
algorithms? Why is local frame replacement more likely to underutilise
memory?
20. What is thrashing?
21. What is the working set model? What is it used for?
I/O Management – What you should know.
Having completed the podcasts and reading for the section on I/O management,
you should be able to answer the following questions. Feel free to discuss with
Emma any that you are unsure about.
1. Why is I/O management such a critical function of the OS?
2. What types of I/O devices does the OS have to manage?
3. What are the three forms of I/O management?
4. What is the sequence of operations/decisions for interrupt-driven I/O?
5. Explain the trade-off between efficiency and generality in the design and
implementation of I/O management.
6. Explain how buffering improves I/O performance.
7. What is the difference between block-oriented and stream-oriented
buffering?
8. What is the difference between single, double, circular buffers?
9. What are the characteristics of hard disk drives, solid-state devices and
magnetic tapes as secondary storage devices?
10. How does the physical construction of a hard disk drive impact on the
performance of scheduling algorithms?
11. Describe the scheduling algorithms presented in the podcasts. What are
the pros and cons of each?
File Management – What you should know.
Having completed the podcasts and reading for the section on file management, you should
be able to answer the following questions. Feel free to discuss with Emma any that you are
unsure about.
1. What is the difference between the user’s perspective on file systems and the low level
implementation of file systems?
2. What are the four layers in the layered approach to file system design?
3. What is a file?
4. How can file data be organised?
5. What is a file control block, and what types of information does it contain?
6. What operations upon files need to be provided by the operating system?
7. Why are additional data structures required by the operating system to support these
operations? Use the open() system call as an example to illustrate this.
8. What is file locking and why is it needed? What is the difference between shared and
exclusive locks? What is the difference between mandatory and advisory locks?
9. What are the file protection details in the file control block used for?
10. Directories provide support for file naming, allowing both multiple files with the same
name and a single file with multiple names. Explain how they achieve each of these
objectives.
11. Describe the pros and cons of implementing directories as a. linear lists
b. hash tables

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

You might also like