 Welcome to the session on elements of modern computers. At the end of the session students will be able to discuss various elements of modern computers in context of parallel computing. So here there are six main elements that make up a computer system. They all interact with each other and perform the task at hand. Let us take a look at all of them. The hardware and software and programming elements of modern computer systems can be characterized by looking at variety of factors which includes computing problems, algorithm and data structure, hardware resources, operating system, system software support, then compiler support. So here the computers if you are observed are general purpose machines and that are designed to follow instructions to complete data processing tasks although the specific architecture of different types of computers may be different. So all computers accomplish data processing using different basic elements of the computer or we can say some general purpose considered there will be a five basic elements of the computer system. Let us check these are the, what are these are the parts. So here you can able to check the hardware architecture consisting operating system as a system software. And out of that there are some application softwares which are wrapped around the operating system. So apart from this, so application software works on the top of the operating system and operating systems are built on the top of the hardware resources. So apart from this again some of the things we are going to map here like computing problems, then algorithm and data structure, then high level language programming part, then performance evolutions and these all things again get mapping or with reference to each other or with the in hand with each other they all works together. So one by one all elements we will check in the next slide. So here the computing problem is a numerical computation which compute or will calculate complex mathematical formulation, TDS integer or floating point computation, then transaction processing which accurate transactions, then large database management and information retrieval and there are again some more points we will discuss under the computational problem like logical reasoning that is logic inferences, then symbolic manipulations. So here the communication with the outside world takes place through the input and output element of the computer system and data is a input into a computer through external hardware devices and here these things will be processed. Now about the algorithm and data structure, once the input starts to get processed, so here in the algorithm and data structure, traditional algorithm and data structures we already checked that they are designed for sequential machines. Now in a new specialized algorithm and data structures are needed to exploit the capabilities for parallel characterization. So these often require interdisciplinary interaction among theories, experimentation and programmers. So computer comes in many forms like desktop PC to portable devices such as laptops, tablets, even smartphones, however a number of basic elements are generally found within most computing devices used by ordinary people. So these are many additional types of computers used only within certain specialized contexts such as supercomputers and servers. The algorithm and data structure are specifically applied to execute the processing task with a particular complexity. Now you have a question like what are the elements of modern computer systems by looking at variety of factors in context of parallel computing. So in the context of parallel computing explain the different elements in modern computers. So your answer, here your answer we define in the parallel computers the different factors are computing problem, algorithm and data structure, hardware resources, operating system, system software, then compiler supports. So anyhow we already checked computing problem and algorithm and data structure. So what are the things or what are the elements or again what are the part in the computing problems, then algorithm and data structure why it is required that we checked. Now we are moving for the hardware resources. Here the architecture of a system is shaped only partly by the hardware resources. The operating system in applications are significantly influenced the overall architecture. So not only must the processor and memory architecture be considered but also the architecture of the devices interfaces. So here we come to know what is the architecture we used as a system hardware resource and why it is needed. This is we are expecting because based on this architectural hardware we are going to choose the operating system or operating system will be designed based on the hardware architecture. So operating system on a computer is what bridges the gap between the hardware and the user. So common operating system includes Windows, Mac, OS, Linux, again we will check these parts in the next slide also. And the operating system in a computer communicates with the control, hardware elements including controlling the hardware elements including the hard days, memory, processor, input and output devices. About the operating system it manages the allocation and deallocation of resources during user program execution definitely. So there we are going to create the allocation and deallocation table, memory allocation and deallocation table. And how to execute the number of tasks on the RAM that is random access memory that all the things we will check again in the parallel computation. Then about the Unix, Mac and OSF provides support for multi-processor and multi-computers. So again we are check apart means apart from the operating system if we are observing the operating systems like Unix, Mac and OSF. So these operating systems are very much famous for the multi-processing. Then multi-threading kernel functions, virtual memory management, then file subsystem network communication services. So here an OS plays a significant role for mapping hardware resources to algorithm and data structure. In the system software support compiler assemblers and loaders are traditional tools for developing programs in high level languages. So with the operating system these tools determine the bind of resources to applications and the effectiveness of the, determine the efficiency of hardware utilization and the system programmability. So the most programmers still employ the sequential mindset alerted by a lack of popular parallel software support. So specifically in the parallel computing model here we are focusing on the tools which are work for means there we are specifically observing those compilers and assemblers who are working for parallel processing. So parallel software can be developed using entirely new language to design specific with parallel support as it goes. So by using extension to existing sequential language new languages have obviously advantage. So that's why we are come up with the, in the high level language we are come up with the new technologies or new languages. The most common approach is external to the existing language. So here the pre-processors that is which existing the sequential compilers and specialized libraries to implement parallel constructs. So to implement parallel construct we are focusing on the pre-processors. Then the concept like pre-compilers which performs some program flow analysis dependence checking and limited parallel optimization. Then parallelization of compilers which requires full detection of parallelism in source code and transformation of sequential code into parallel constructs. So compiler directives are of one inserted into source code to aid compiler parallelizing efforts. These are my references. Thank you.