Important system components, Operating System

Assignment Help:

Organizational, Structural, Logical and Execution Relationships Between Important System Components in Linux Kernel Subsystems

A. Description of the Project

You are required to study the important system components, including important data structures, important functions and algorithms, and the various organizational, structural, logical and execution relationships between them, in one or more subsystems of the Linux kernel which provide some basic kernel functionality and clearly explain them. An important requirement is that you should try to draw as many as possible of your own diagrams, which illustrate, as many as possible of the following information:

A1. The names of the fields that connect the various data structures.

A2. Examples of data values in the various data structures which show their logical and structural connections.

A3. Which part of the system they belong, or are executed in.For example, kernel-space/user-space; in-memory/on-disk; kernel-mode/user-mode, etc.

A4. Organizational and structural relationships.

A5. Logical relationships.

A6. Flow of execution and/or decision making.

A7. Changes in data values and/or organization structure at different stages of execution.

A8. Any other organizational, structural, logical and execution relationships between the system components that may aid understanding of any important aspect of the subsystem(s).

B. Examples of Diagrams of Linux Kernel Components and Their Relationships

Example 1. The diagram illustrating the data structures of in-memory VFS objects and on-disk objects and their relationships on slide 24 of the lecture notes OSD.4. This diagram illustrates A1, A2, A4 and A5.

Example 2. The diagrams illustrating the data structures of the internal structure of a small file system tree in Unix on slides 9 and 10 of the lecture notes OSD.4. These diagrams illustrate A2, A4 and A5.

Example 3. The diagrams illustrating the data structures of the Unix file system directory on-disk organization on slides 12 and 13 of the lecture notes OSD.4. These diagrams illustrate A2, A4 and A5.

Example 4. The diagrams illustrating the VFS mount tree of vfsmount Structures on slide 72 of the lecture notes OSD.4. These diagrams illustrate A2, A4 and A5.

Example 5.The diagram illustrating the ext2_sb_info data structure in Figure 18-4 on page 752 of "Understanding the Linux Kernel" 3rd Edition. This diagram illustrates A1, A3, A4 and A5.

Example 6.The diagram illustrating an example of the Ext2 directory in Figure 18-3 on page 749 of "Understanding the Linux Kernel" 3rd Edition. This diagram illustrates A1, A2 and A4.

Example 7. The diagram illustrating a buffer page including four buffers and their buffer heads in Figure 15-2 on page 615 of "Understanding the Linux Kernel" 3rd Edition. This diagram illustrates A1, A4, and A5.

Example 8.The diagram illustrating data structures for file memory mapping in Figure 16-2 on page 659 of "Understanding the Linux Kernel" 3rd Edition. This diagram illustrates A1, A4, and A5.

Example 9. The diagram illustrating the most important data structures related to signal handling in Figure 11-1 on page 426 of "Understanding the Linux Kernel" 3rd Edition. This diagram illustrates A1, A4 and A5.

Example 10.The diagram illustrating adding or removing a linear address interval in Figure 9-1 on page 359 of "Understanding the Linux Kernel" 3rd Edition. This diagram illustrates A4, A5 and A7.

Example 11.The diagram illustrating invoking a system call in Figure 10-1 on page 400 of "Understanding the Linux Kernel" 3rd Edition. This diagram illustrates A3, A4, A5, A6 and A7.

Example 12.The diagram illustrating the flow diagram of the page fault handler in Figure 9-5 on page 378 of "Understanding the Linux Kernel" 3rd Edition. This diagram illustrates A5 and A6.

Example 13. The diagram illustrating kernel components affected by a block device operation in Figure 14-1 on page 561 of "Understanding the Linux Kernel" 3rd Edition. This diagram illustrates A4 and A5.

Example 14.The diagram illustrating linking the block device descriptors with the other structures of the block subsystem in Figure 14-3 on page 587 of "Understanding the Linux Kernel" 3rd Edition. This diagram illustrates A1, A4 and A5.

Example 15.The diagram illustrating the runqueue structure and the two sets of runnable processes in Figure 7-1 on page 268 of "Understanding the Linux Kernel" 3rd Edition. This diagram illustrates A1, A2 and A4.

All of the diagrams in the book "Understanding the Linux Kernel" 3rd Edition are good examples of different types of diagrams that can help readers understand various aspects of how the various subsystems of the Linux kernel that provide some basic kernel functionality works.

C. What to Hand In

1. You are required to hand in both a hard copy and an electronic copy of the written report on the project described in A, including all the diagrams you have drawn.

2. You are also required to hand in both a hard copy and an electronic copy of the Linux source code files that relate to the report on the project described in A, further subject to the conditions in 3, 4 and 5 below.

3. In the hard copy of the Linux source code files, you are required to use a fluorescent marker to highlight:

3.1. The names of the data structures and any specific fields of the data structures, which are illustrated in your diagrams or explained in your report.

3.2. The most important statements in the source code that perform the functions that are illustrated in your diagrams or explained in your report.

4. If the Linux source code files that relate to the report on the project described in A total more than 30 pages, then the hard copy of the Linux source code that you submit should include only the following (there is no such restriction on the size of the electronic copy of the Linux source code files that you submit):

4.1. The data structures and any specific fields of the data structures which are illustrated in your diagrams or explained in your report which describe the data structures, together with a list of the names of the ".h" header files and source code line numbers in which they can be found.

4.2. The most important statements in the source code that perform the functions that are illustrated in your diagrams or explained in your report together with the procedure/function names, and a list of the names of the ".c" program files and source code line numbers in which they can be found.

5. In all cases, for both the electronic copy and the hard copy of the Linux source code files, you should provide the Linux kernel version number, and the address of the website where the source code can be found related to the Linux kernel subsystem(s) you have chosen at the beginning of your report.

You are required to use the utility "submit" to submit the electronic version of the above to the directory: /cs/course/4221/submit/project

The hard copy should be handed in by Friday December 10, 2010 24:00 midnight.

(Note that this the last day to hand in term work for the Fall 2010 term)

- either give it to the secretary in the Department of Computer Science and Engineering Office to be put into my mailbox; or you may slip it under the door of my office CSEB 3018 (in the latter case, you are responsible for making sure that the thickness of your hard copy allows it to be slipped under my office door).

D. Other Requirements

(a) You should try to organize your report in a way such that it is easy to understand and use. The reader should be able to find information on a particular topic as quickly as possible, and be introduced to important concepts and issues at a "higher level" first, before getting into "lower level" details.

(b) All the drawings must be produced electronically with a drawing program. All the drawings must be accompanied by figure numbers and captions.

(c) The report should contain in-text references to the portions of the highlighted source code in C.4.1. and C.4.2.above that are discussed in the report.

(d) The report must contain a table of contents, and must be clearly divided into sections and subsections, with section and subsection headings. Page numbers must be included.

(e) The report must clearly identify which sources of information you have used in which components of this assignment.

(f) If a good diagram/explanation on some aspect of the Linux kernel system/subsystem under consideration already exists in a book or paper that has been published by a publisher or posted on a website, you may include it together with the other drawings/explanations you have drawn/written yourself in your report; you may also add your own improvements on existing diagrams/explanations taken from various publications or postings. However, you must clearly identify the source of each original individual existing diagram/explanation that you have either improved upon or included with or without modification; and explain in detail exactly which improvements you have made to the original, if any, in your report. The identification and assembly of existing diagrams/explanations to form a more complete explanation of one or more subsystems of the Linux kernel is encouraged. If you have drawn a diagram or offered a written explanation that cannot be found anywhere else, you should explicitly identify it as such, as that is even more strongly encouraged.

(g) For this project, you should use some version of Linux kernel 2.6. You should indicate the particular version you are using, e.g., 2.6.11.

E. Evaluation of the Project

Your project will be evaluated according to:

(a) The quality, completeness, and originality of the diagrams, including how much information among A1-A8 listed above, have been illustrated for the important system components, including important data structures, important functions and algorithms, and the various organizational, structural, logical and execution relationships between them in the subsystem(s) of the Linux kernel that you have chosen to study.

(b) The overall quality, completeness, and originality of the combined graphical and written explanation, for the important system components, including important data structures, important functions and algorithms, and the various organizational, structural, logical and execution relationships between them in the subsystem(s) of the Linux kernel that you have chosen to study.

(c) The amount of effort and the degree of difficulty of the Linux kernel subsystem(s) involved.

(d) The clarity, readability and organization of the project report and importance/relevance of the highlighted portions of the provided Linux source code.


Related Discussions:- Important system components

Introduction to paging, We will brie?y introduce paging to ?nish off this l...

We will brie?y introduce paging to ?nish off this lecture. When a process is loaded, not all of the pages are immediately loaded, since it's possible that they will not all be need

Deadlock, Suppose we have 3 processes running at the same time as shown in ...

Suppose we have 3 processes running at the same time as shown in the following table. Each resource only has one instance. Show a possible scenario of resource allocation that r

Explain time-sharing environment, In a multiprogramming and time-sharing en...

In a multiprogramming and time-sharing environment, several users share the system simultaneously. This situation can result in various security problems. a

Why do organisations need a structure, Problem 1: (a) The grouping of o...

Problem 1: (a) The grouping of organisational activities (usually into ‘departments' or larger ‘divisions') can be done in different ways. Outline 7 criteria which can be used

Execution without entering a deadlock state, Q. Presume that a system is in...

Q. Presume that a system is in an unsafe state. Illustrate that it is possible for the processes to complete their execution without entering a deadlock state. Answer: An unsaf

Explain demand paging in virtual memory system, Question 1 Explain with di...

Question 1 Explain with diagram all possible states a process visits during the course of its execution Question 2 Discuss Inter-process Communication. What is critical-secti

Case studies, Did Abhinav agree to the initial timeline requested by Rebecc...

Did Abhinav agree to the initial timeline requested by Rebecca

Least-recently used, LRU evicts the page which was last accessed the farthe...

LRU evicts the page which was last accessed the farthest into the past of any page resident in physical memory, i.e. the least-recently used page. LRU approximates OPT when the rec

Explain the communications of request or response interface, Explain the Co...

Explain the Communications of Request or Response Interface The inter-application communication must provide four specific interface to the CSInterface() components. A client m

Define what an assembler is, Define what an assembler is An assembler i...

Define what an assembler is An assembler is machine dependant.

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd