Bagus' OS202 Page!

Logo

Join my adventure in exploring Operating Systems!

View the Project on GitHub baguspr/os202

HOME


TOP 10 LIST OF WEEK 00

1. What Operating Systems Do
The operating system control the hardware and coordinates its use among the various application programs for the various users The operating system provides the means for proper use of hardware, software, and data in the operation of the computer System. The operating system itself does not perform any useful function, the provide an environment within which other programs can do useful work.

2. Computer-System Organization
A general-purpose computer system consist of one or more CPUs and a number of device controllers connected though a common bus that provides access between components and shared memory. Generally, operating systems have a device driver for each device controller. The device driver understand the device controller and provides the rest of the operating system with a uniform interface to the device. All forms of memory provide an array of bytes. Each byte has its ownaddress. Interaction is achieved through a sequence ofloadorstoreinstruc-tions to specific memory addresses.Theloadinstruction moves a byte or wordfrom main memory to an internal register within theCPU,whereasthestoreinstruction moves the content of a register to main memory. The CPU and the device controllers can execute in parallel, competing for memory cycles.

3. Computer-System Architecture: Storage Structure
The CPU can load instructions only from memory, any programs must first be loaded into memory to run. Computer uses othe forms of memory besides RAM and DRAM. For instance, when the computer is turned on, they run a program called bootstrap program which loads the operating system. They can’t store the bootstrap program in RAM since it is volatile, instead, the computer uses EEPROM and other form of firmwar. All forms of memory provide an array of bytes. Each byte has its ownaddress. Interaction is achieved through a sequence of load or store instruc-tions to specific memory addresses. The load instruction moves a byte or wordfrom main memory to an internal register within the CPU,whereas th estore instruction moves the content of a register to main memory.

4. Computer-System Architecture: Multiprocessor Systems
Traditionally, multiprocessor systems have two or more processors, each with a single-core CPU.The processors share the computer bus and sometimes the clock, memory, and periph-eral devices. The primary advantage of multiprocessor systems is increased throughput. That is, by increasing the number of processors, we expect to getmore work done in less time. The most common multiprocessor systems use symmetric multiprocessing(SMP), in which each peer CPU processor performs all tasks, including operating system functions and user processes. Each CPU processor has its own set of registers, as well as a private or local cache. However, all processors share physical memory over the system bus. The definition of multiprocessor has evolved over time and now includes multicore systems, in which multiple computing cores reside on a single chip. Multicore systems can be more efficient than multiple chips with single cores because on-chip communication is faster than between-chip communication.

5. Operating-System Operations: Multiprogramming and Multitasking
One of the most important aspects of operating systems is the ability to run multiple programs, as a single program cannot, in general, keep either the CPU or the I/O devices busy at all times. Users typically want to run more than one program at a time as well. Multi programming increases CPU utilization, as well as keeping users satisfied, by organizing programs so that the CPU always has one to execute. Multi tasking is a logical extension of multi programming. In multi tasking systems, the CPU executes multiple processes by switching among them, but the switches occur frequently, providing the user with a fast response time.

6. Kernel Data Structures
The kernel data structures have 4 main structure, which are list, stack, and queues (which are viewed as one structure),trees, hash functions and maps, and finally bitmaps. A list represents a collection of data values as a sequence.A stack is a sequentially ordered data structure that uses the last in, first out (LIFO) principle for adding and removing items, meaning that the last item placed onto a stack is the first item removed. A queue, in contrast, is a sequentially ordered data structure that uses thefirst in, first out (FIFO) principle: items are removed from a queue in the orderin which they were inserted. A tree is a data structure that can be used to represent data hierarchically. Data values in a tree structure are linked through parent–child relationships. In a general tree, a parent may have an unlimited number of children. In a binary tree, a parent may have at most two children, which we term the left child and the right child A hash function takes data as its input, performs a numeric operation on the data, and returns a numeric value. One use of a hash function is to implement a hash map, which associates pairs using a hash function. A bitmap is a string of n binary digits that can be used to represent the status of n items.

7. Free Operating Systems
Free operating systems are created to counter the move to limit software use and redistribution. In 1984, Richard Stallman started developing a free, UNIX-compatible operating system called GNU. The free-software movement does not object to trading a copy for an amount of moneybut holds that users are entitled tofour certain freedoms: (1) to freely run the program, (2) to study and changethe source code, and to give or sell copies either (3) with or (4) without changes. Stallman formed the Free Software Foundation (FSF) with the goal of encouraging the use and development of free software. The FSF uses the copyrights on its programs to implement “copyleft,” a form of licensing invented by Stallman. Copylefting a work gives anyone that possesses a copy of the work the four essential freedoms that make the work free, with the condition that redistribution must preserve these freedoms.

8. Operating System Services
An operating system provides an environment for the execution of programs. It makes certain services available to programs and to the users of those programs. One set of operating system services provides functions that are helpful to the user. One set contains: User Interface: The interface in a computer is a window system with amouse that serves as a pointing device to direct I/O, choose from menus, and make selections and a keyboard to enter text. Program Execution: The system must be able to load a program into memory and to run that program. The program must be able to end its execution, either normally or abnormally (indicating error). I/O Operations: A running program may require I/O, which may involve a file or an I/O device. For efficiency and protection, users usually cannot control I/O devices directly.Therefore, the operating system must provide a means to do I/O. File-System Manipulation: Operating systems provide a variety of file systems, sometimes to allow personal choice and sometimes to provide specific features or performance characteristics. Communications: Communications may be implemented via shared memory, in which two or more processes read and write to a shared section of memory, or message passing, in which packets of information inpredefined formats are moved between processes by the operating system. Error Detection: The operating system needs to be detecting and correctingerrors constantly. Errors may occur in the CPU and memory hardware (such as a memory error or a power failure), in I/O devices (such as a parity error on disk, a connection failure on a network, or lack of paper in the printer),and in the user program (such as an arithmetic overflow or an attempt toaccess an illegal memory location).

9. Linkers and Loaders
A linker combines these relocatable object files into a single binary executable file. During the linking phase, other object files or libraries may be included as well. A loader is used to load the binary executable file into memory, where it is eligible to run on a CPU core. An activity associated with linking and loading is relocation, which assigns final addresses to the program parts and adjusts code and data in the program to match those addresses so that, for example, the code can call library functions and access its variables as it executes.

10. Monolithic Structure
The simplest structure for organizing an operating system is no structure at all. That is, place all of the functionality of the kernel into a single, static binary filethat runs in a single address space. This approach—known as a monolithic structure—is a common technique for designing operating systems. An example of such limited structuring is the original UNIX operating system, which consists of two separable parts: the kernel and the system programs. The kernel is further separated into a series of interfaces and device drivers, which have been added and expanded over the years as UNIX has evolved. We can view the traditional UNIX operating system as being layered to some extent.