As the chief engineer at a highly successful operating syste
As the chief engineer at a highly successful operating systems company, you must make tough choices regarding engineering tradeoffs every day. As a former Linux administrator, your goal is to make the lives of other administrators easier while ensuring the company’s operating systems can be easily configured to meet new business needs.
Your engineering team wants to make architectural changes to the company’s customized distribution of the Linux operating system—specifically, the memory allocation mechanism used by the kernel. The team wants you to weigh in by giving them guidance on two important areas of memory management.
Choose one of the two positions below and provide a well-researched and technically accurate answer. (Note: Choose positions that have been least addressed by your classmates.) Position
1: Explain how memory managed as separate address spaces provides memory protection for multiple processes. Is this model more or less complex than having all processes use the same memory space? Are there security concerns? Position
2: Explain the benefit of using memory allocation data structures composed of linked lists. Address the concepts of first, best, and quick fits. Are there other data structures that would be more suitable? Given that Linux is open source, does the administrator of a Linux system have the option of selecting another memory allocation architecture?
Solution
Position 1: Executing more than one process at a same time is said to be multi processing. When multiprocessing is being done there is a problem for memory space in the ssytem. We need memory space because the data in the process need to be stored for further purpose. The memory storage is of two types called as local storage and session storage. Local storage is defined as storing the available information in the system . This leads to increase in the memory space. Session storage refers to storing the data in a particular session of time. This will help in reducing the memory space. We have to maintain a separate address space for each process to save the data. This will help us to identify in which memory location the data is being stored. Yes this model is less complex than having all processes use the same memory space. Beacuse if we want to store the data for a longer time we use local storage and if we want that over a particular period of time we use session storage. There are security concerns in this model. Any security check in the system is enforced by the kernel code. If the kernel has security holes, then the system as a whole has holes. In the official kernel distribution, only an authorized user can load modules i.e. the system call init_module checks if the invoking user is authorized to load a module into the kernel. Thus, when we are running an official kernel, only the superuser, or an intruder who has succeded in becoming previliged, can exploit the power of priviliged code.