Hardware Software Systems And Networks

Print   

02 Nov 2017

Disclaimer:
This essay has been written and submitted by students and is not an example of our work. Please click this link to view samples of our professional work witten by our professional essay writers. Any opinions, findings, conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of EssayCompany.

This report is mainly compiled to complete the assignment of Hardware Software System and Network module. There are two major section included in this assignment which are processor area and process control management area.

The first section will discuss about the performance and memory system issue between single operating system and multiprogramming operating with multiprocessor.

The second section will discuss about the process control management of Window XP operating system. This will contain scheduling algorithm, process handling management and also internal system structure of Window XP.

In this assignment, the issues of performance and memory management system are discussed between single Operating System with "single core processor" and multiprogramming Operating System with two "single core processor".

For further understanding, this section will start with the structure of processor and multiprocessor and the function of operating system.

The coming issue to be discussed is idle time of multiple CPUs and cache coherence problem. Multithreadin

3.1 Processor

A processor is the "brain" of the computer, also known as the Central Processing Unit. There are two main components in the CPU. Control Unit, is the doer, fetching instruction of programs stored in the main memory that going to be executed. It is also the thinker, examining and determine the type of instruction. Arithmetic Logic Unit will perform all the simple operation such as subtraction and addition. All the components are linked by a collection of parallel wires called bus. Bus is used to manage signal, transmitting data and memory address. It not only work internally in CPU but also connected with memory and I/O device.

The CPU also has a high speed and small memory called as Register function as temporarily storage for locations, data or control information. Register is the internal component to CPU which allows it to be written and read at high speed. Program Counter is one of the register that function as directing the next instruction that going to be fetched for execution while Instruction Register functions as holding the current executing instruction.

Tanenbaum, Andrew S., 2006. Structure Computer Organization. 5th ed. Page 51-53. Singapore: Pearson Education, Inc.

3.2 Multiprocessor

Multiprocessor is a system implemented with more than one processor in a single integrated circuit.

In this assignment, the types of multiprocessor approached is Symmetric Multiprocessor where all processor are sharing the same facilities together such as main memory, I/O devices and buses.

Each processor is accessible to any I/O device through the same bus or through different bus where provide other ways to the same device.

A core is large circuit that function as a processing unit inside the processor chip. A single processor can owned different number of core such as single core, dual core and quad core.

Comparing the processing speed between dual core processor and two physical processor, dual core processor is faster because each core communicates with each other internally in the same processor chip.

In this assignment, only single core processor is approached to be discussed for the coming issue.

Tanenbaum, Andrew S., 2006. Structure Computer Organization. 5th ed. Page 582. Singapore: Pearson Education, Inc.

Englander, Irv, 2010. Computer Hardware, Systems Software & Network. 4th ed. Page 265-268. Bentley University: John Wiley & Sons (Asia) Pte Ltd.

Stallings, William, 2006. Computer Organization & Architecture. 7th ed. Page 643. United State: Prentice-Hall, Inc.

2013. . [ONLINE] Available at: http://i1-news.softpedia-static.com/images/news2/Tyan-Intros-New-Quad-Socket-AMD-Motherboard-and-Server-Barebone-Supporting-Up-to-512GB-RAM-2.jpg. [Accessed 3 April 2013].

3.3 Operating System

Operating system is a main program in a computer that manage the execution of application program and serve as an interface to communicate between user and computer hardware.

First of all, for user, an Operating System is just a system that have many application programs to ease their life in multiple purposes. In fact, in order for those application programs to communicate with computer, it needs to be developed in programming language. A set of system program is created to act as utilities function that assist programmer in developing program, managing files, controlling I/O device. Undeniably, Operating System is the most important system program. Programmer makes use of the system program to invoke certain function, service and facilities

Basically, Operation System also provides function in the following areas:

Accessing to I/O device

Every single I/O device have its own instruction or control signal for operation. In order to access those I/O device, Operating System needs to understand those instruction set by installing a drive act as an interpreter between I/O device and Operating System.

File management and System access

Operating System manage file on secondary storage such as create, delete, change, recognize and access of file. When the Operating System is shared or public, it controls the accessibility of system resource and data to prove protection and prevent unauthorized user to access data.

Enhancing performance

Operating System is able to monitor the computer’s usage statistic for different resources and analyse performance in certain area such as response time. This information is very important and useful for future enhancement of the computer performance.

Stallings, William, 2006. Computer Organization & Architecture. 7th ed. Page 244 - 247. United State: Prentice-Hall, Inc.

3.4 Performance:

3.4.1 Long idle time of CPUs – Problem & Solutions

A single bus multiprocessor system is easiest to build, as illustrated in Figure 4-1. All CPUs and Memory modules are using the same bus as the communication channel for transmitting data and control signal. When a CPU is requesting to read or write a data in certain memory address, it needs to verify whether the bus is busy. Only if the bus is idle, CPU can proceed the process of reading or writing by putting the memory address and control signal on it. While the bus is busy, the CPU will just wait until it turns to idle.

Herein discover the problem with this multiprocessor system design. The bandwidth of the bus is not affordable by having multiple processors at the same time. Thus, most of the CPUs will stay idle most of the time.

To solve this design issue, there are more than one solution to be practiced. First, a local cache is implemented individually inside each CPU. By practicing this solution, some process of reading and writing can be done by local cache to reduce the bus traffic for the use of other CPUs.

Second solution is to implement not only a local cache but another private cache connecting by a dedicated private bus. This design solution requires compiler to place program constant, strings, read-only data, stacks and local variable in the private memories while the local memory only stored writable shared variable. With this implementation, bus traffic can be reduced greatly but the downside is required certain level of cooperation from the compiler.

Tanenbaum, Andrew S., 2006. Structure Computer Organization. 5th ed. Page 594-595. Singapore: Pearson Education, Inc.

3.4.2 Absence of Multithreading in a Single Core Processor.

First of all, to measure the performance of a processor, is to calculate the rate of executing instruction.

MIPS rate (Millions of Instruction per second) = f (Frequency) x IPC (Instruction per cycle)

Accordingly, to improve the performance, there are only two factors which is increasing the clock frequency and the number of instructions completed. The methods to increase the following factor are to implement instruction pipeline. This method will reach a limit because of complexity and large power consumptions.

The bottleneck of single core processor are that it only allow one execution of read and write at once and handles one thread at once. In contrast, a multiprocessor able to distribute the task for each core to execute read process and the other core run write process simultaneously. Because of this, single core processor only allow to run one program at once which greatly reduce the performance while comparing with multiprocessor.

Herein introduce a technique used by multiprocessor called as multithreading which allow processor to switch threads within a single program. A Process is an instance of program which is running on an operating system. A process holds a virtual address space that included program data, attribute and variable. A Process Switch is an operation that switches the processor from one process to anther by storing all the process information, control data and information. A Thread is flow within a process which include the program counter stack pointer. A thread is interruptible so that processor can switch from one thread to another.

There are many approaches on multithreading while this assignment only discuss about fine-grained multithreading. This approach allow the processor to run with two or more thread at once, switching them from one to another at each clock cycle. If in the case of the thread is block because of data dependencies or memory latencies, then the thread will be skipped and another ready thread is executed.

Stallings, William, 2006. Computer Organization & Architecture. 7th ed. Page 656-659. United State: Prentice-Hall, Inc.

About Processes and Threads (Windows). 2013. About Processes and Threads (Windows). [ONLINE] Available at: http://msdn.microsoft.com/en-us/library/windows/desktop/ms684841(v=vs.85).aspx. [Accessed 10 April 2013].

3.5 Memory System

3.5.1 Cache coherence and inconsistency

Cache coherence is referred as the consistency of shared memory by multiple CPUs. Without applying any certain rules in caching data, it will become a serious problem to a bus-based multiprocessor system. For example, C.PU 1 modified the line immediately after CPU 2 read its copy of line from its cache, CPU 2 will now have a copy of stale data.

To overcome this problem, many solutions are approached. There are called as cache coherence protocols, which help to prevent different copy of data appearing in different CPUs’ cache. In this assignment, MESI cache coherence protocol is practiced.

Initially, a CPU is being booted, it will mark all cache entries as Invalid state. While the first time memory is read, the line used is fetching the data into the cache of CPU’s reading memory and marked as Exclusive state. The next read by the same CPU will read from its cache while CPU 2 will fetch from the same line used since CPU 1 has announced that the bus contains a copy.

Thus, CPU 2 owns a copy and marked as Shared state. Shared state refer as the line has a copy for reading and memory is updated.

Secondly, while the CPU 2 is requesting to write the cache line, it will assert invalidate signal on the line in order to tell other CPUs to remove their copies. CPU 2 now is in Modified State. Note that when it is in Exclusive state, no bus signal is required to invalidate other CPUs since there is no other copies exist yet.

Another case is when CPU 3 request to read the line while CPU 2 is still writing, CPU 2 will send a signal to tell CPU 3 to wait the memory to be updated. When CPU 2 is finished, CPU 3 will copy the memory and marked as Shared State. If CPU 2 requests to write the line again, CPU 3’s copy will be invalidated.

Lastly, if CPU 1 requests to write while CPU 2 is still writing, CPU 2 will send a signal to keep CPU 1 waiting and once it finished, it will also marked the copy of itself to become invalidate because it knows that CPU 1 is going to modified the line.

Tanenbaum, Andrew S., 2006. Structure Computer Organization. 5th ed. Page 597- 599. Singapore: Pearson Education, Inc.

3.5.2 Memory management and memory hierarchy

The purpose and aim of the memory management system is to load programs data into memory for execution. Additionally, multitasking require multiple program to load into the memory simultaneously which each of them own a memory space.

A good memory management must deal with three main tasks to do. First, keeping track of memory as well as maintaining records of each program loaded into memory. It also need to analyse for available memory space and allocate these space for other running programs. Besides that, it also need to prevent programs from reading and writing memory in the wrong place other than their own allocated space so that is no damage to other program.

Secondly, memory management require to maintain the queues of programs waiting to be load in to memory based on priority and memory requirement.

Lastly, when the programs is completely executed, it needs to be deallocated from the memory to make space for next coming program.

Register is high speed of temporarily storage for locations, data or control information which give the data accessed frequently to be accessed immediately. Cache is a small amount of high speed memory as holding area for the data that is accessed frequently. It does not need to continually refresh and help to reduce the average time to access memory. Thus, when the data is kept in cache, it can be accessed more quickly. Main memory is the fastest way get information because is the only one directly accessible to the CPU.

Stallings, William, 2006. Computer Organization & Architecture. 7th ed. Page 105. United State: Prentice-Hall, Inc.

Englander, Irv, 2010. Computer Hardware, Systems Software & Network. 4th ed. Page 493. Bentley University: John Wiley & Sons (Asia) Pte Ltd.

3.6 Frequently Asked Question

What is a bus?

Bus is a set of parallel connection which allow data to be transferred from one area of the computer to another. There are three type of bus: address bus, data bus and control bus. Address bus is function as to located memory location from which data is to be fetch or sent. Data bus allows data to be exchange between CPU and main memory by going through read and write process. Control bus is function as signalling the memory whether read or write process.

Additionally, addressable space in addressable space is number of parallel bits in the address bus which indicate the number of different address.

e.g.: 8 bits address bus = 28 = 256 unique address bus

Data bus width is to determine the amount of bit that a CPU can send or receive at once. 8 bit data bus need 4 second to transfer 4 byte of data because 8 bit is equal to 1byte.

Englander, Irv, 2010. Computer Hardware, Systems Software & Network. 4th ed. Page 213- 215. Bentley University: John Wiley & Sons (Asia) Pte Ltd.

What is uniprogramming, multiprogramming and multitasking?

A uniprogramming Operating System is designed to work one program at a time.

In contrast, a multiprogramming Operating System able to work on more than one program simultaneously. Some frequently accessed programs are stored into memory to allow processor switch rapidly across among them.

In addition, multitasking is referred as running multiple task within the same program, in contrast to multiprogramming means running multiple process from multi programs.

Stallings, William, 2006. Computer Organization & Architecture. 7th ed. Page 238-252. United State: Prentice-Hall, Inc.

3.7 Conclusion

4.0 Section 2

4.1 Process Control Management

A process is to define as the execution states of a program. Most of the operating system, the process states mainly described in three states which ready state, running state and blocked state. Figure below shown the relationship having between these three states.

During the New state, it means a process is being created and admitted by the system for execution. It will move to Ready state means that the process is ready for execution if access is permitted to CPU. Moving from ready state to running state is called as a dispatching the process which means the process has own the control of CPU for instructions execution.

In a multiple processor system, there will be many processes staying at ready or blocked state as well as many processes will occupied all available CPUs during the running state. Tem

When a process during the running state required I/O or other service to continue, some operating system will decide to suspend the program automatically, other will move the process to blocked state. As a well-designed programs, it should suspend itself when the process is not able to proceed. Some blocked processes are not waiting for I/O to happen but certain event signal to occur such as completion signal from other process.

When a blocked process gain what it required, it will move back to ready state through a wake-up transition. For a nonpreemptive system, it will allow all running processes to keep running until it has completed or blocked. In contrast, a preemptive system will set up certain limit of time for the process to remain in running state. When the process has reached the limit, it will move the process back to ready state through a timeout transition.

Lastly, the terminated state is used when the process is completed its execution and returned the control to operating system.

Englander, Irv, 2010. Computer Hardware, Systems Software & Network. 4th ed. Page 605- 606. Bentley University: John Wiley & Sons (Asia) Pte Ltd.

4.2 Scheduling Mechanism

CPU scheduling basically referred as the process is accepted by into system and been allocated of CPU time for those processes to execute. It helps to utilize the computer system resource by running multiple processes to execute concurrently. For window XP, it prefer preemptive dispatch algorithm – round robin.

Preemptive Dispatch Algorithms and Nonpreemptive Dispatch Algorithm

Round robin is the simplest preemptive algorithm, it limits each process a quantum of CPU time to complete. In another case, if it could not complete within the time or required I/O, it required to move back to ready state. This is because shortest job finished quickly as to maximize the throughput. It practices a simple but inherently fair scheduling scheme than nonpreemptive type.

First-In, First Out is categorized as simplest nonpreemptive dispatch algorithm. It will execute the process as it request at first, in order manner. This algorithm will penalize short jobs and I/O-bound job which results in underutilized resources.

Shortest job first is another nonpreemptive type which focus on choosing less CPU time consumption job to do first. Starvation will still occur because longer jobs will have to wait for their turn. Hence, the turnaround time is exclusively inconsistent.

Priority scheduling is assigning each job a certain level of priority and run the job with highest priority first. Level of priority is determined by whether the job is CPU-bound or I/O-bound to equal the system. If the same priority job is requesting, it will choose base on First-In First Out method.

Englander, Irv, 2010. Computer Hardware, Systems Software & Network. 4th ed. Page 612- 615. Bentley University: John Wiley & Sons (Asia) Pte Ltd.

4.3 Process creation and handling

In Windows XP, process creation can be done in many ways. When user clicks on the program’s icon, the program will create process to prompt user graphical user interface and monitoring keystrokes, this is known as user process. In contrast, system process is referred as the operating system itself perform request since an operating system is made up of program modules.

Creating a new process is normally called forking or spawning. Cloning the characteristic, priorities and resources of the parent process (spawning) to child process (spawned). This also can be referred as duplicating a process control block (PCB) itself.

Once the child process start to execute, it can request its own resource or change any characteristic if it needs to. A child process is created for a specific task and terminated when it is completed.

Terminated a parent process will generally kills all the child process together even if the child process has its own child process, generations deep. Different processes are tracked by pointer within the PCB.

Englander, Irv, 2010. Computer Hardware, Systems Software & Network. 4th ed. Page 604- 605. Bentley University: John Wiley & Sons (Asia) Pte Ltd.

4.4 Internal System Structure

Figure 6-3. Internal System Structure of Window XP.

Window XP consists of many modules and structured in later to work together as an operating system. First, all modules are written in C, graphical user interface is written in C++ and lowest layers are written in assembly language.

All modules consists of specific function such as device manager works as control I/O device while process and thread manager manages process and thread in creation and termination.

For example, file cache manager will involve with virtual memory to determine file block to keep in memory for future use while the top layer system interface functions as to call other services when user requested.

Tanenbaum, Andrew S., 2006. Structure Computer Organization. 5th ed. Page 473-479. Singapore: Pearson Education, Inc.

4.6 Frequently Asked Question

How to differentiate between preemptive system and nonpreemptive system?

Preemptive system will limit the time for the process in the running state while nonpreemptive system allow the process to stay in running state until it is completed or blocked.

Englander, Irv, 2010. Computer Hardware, Systems Software & Network. 4th ed. Page 606. Bentley University: John Wiley & Sons (Asia) Pte Ltd.

What is assembly language?

Mov ah,02

Mov dl,07hAssembly language use Low level mnemonic to represent machine language instructions on one mnemonics to one instruction basis

Figure 6-4. Example of Assembly language

Tanenbaum, Andrew S., 2006. Structure Computer Organization. 5th ed. Page 508-522 Singapore: Pearson Education, Inc.

4.7 Conclusion

5.0 Limitation



rev

Our Service Portfolio

jb

Want To Place An Order Quickly?

Then shoot us a message on Whatsapp, WeChat or Gmail. We are available 24/7 to assist you.

whatsapp

Do not panic, you are at the right place

jb

Visit Our essay writting help page to get all the details and guidence on availing our assiatance service.

Get 20% Discount, Now
£19 £14/ Per Page
14 days delivery time

Our writting assistance service is undoubtedly one of the most affordable writting assistance services and we have highly qualified professionls to help you with your work. So what are you waiting for, click below to order now.

Get An Instant Quote

ORDER TODAY!

Our experts are ready to assist you, call us to get a free quote or order now to get succeed in your academics writing.

Get a Free Quote Order Now