An OS is a program that controls the execution of application programs and acts as an interface between the user of a computer and the computer hardware. .....................
Advanced Computer Architecture – An IntroductionDilum Bandara
Introduction to advanced computer architecture, including classes of computers,
Instruction set architecture, Trends, Technology, Power and energy
Cost
Principles of computer design
This document provides an introduction to parallel computing. It begins with definitions of parallel computing as using multiple compute resources simultaneously to solve problems. Popular parallel architectures include shared memory, where all processors can access a common memory, and distributed memory, where each processor has its own local memory and they communicate over a network. The document discusses key parallel computing concepts and terminology such as Flynn's taxonomy, parallel overhead, scalability, and memory models including uniform memory access (UMA), non-uniform memory access (NUMA), and distributed memory. It aims to provide background on parallel computing topics before examining how to parallelize different types of programs.
Parallel computing is computing architecture paradigm ., in which processing required to solve a problem is done in more than one processor parallel way.
This document discusses different disk allocation methods including contiguous, linked, and indexed allocation. Contiguous allocation stores files in contiguous disk blocks but can lead to external fragmentation. Linked allocation stores non-contiguous blocks linked through addresses in each block, avoiding fragmentation. Indexed allocation uses an index block to point to each block of a file, allowing for random access but requiring additional space for pointers.
There are two primary forms of data exchange between parallel tasks - accessing a shared data space and exchanging messages.
Platforms that provide a shared data space are called shared-address-space machines or multiprocessors.
Platforms that support messaging are also called message passing platforms or multicomputers.
This document discusses the evolution of computer systems from early relay-based computers to modern parallel processing systems. It covers the progression from vacuum tubes to integrated circuits, increasing computer speeds and capabilities over generations. The key aspects covered are:
1. Computer components including the CPU, memory, and I/O have advanced significantly from early electromechanical to modern integrated systems.
2. Parallel processing has increased from basic multiprocessing to finer-grained instruction-level parallelism using pipelining and multiple functional units.
3. Uniprocessor computers exploit parallelism through techniques like overlapping I/O and CPU operations, hierarchical memory systems, and multiprogramming.
In this presentation, you will learn the fundamentals of Multi Processors and Multi Computers in only a few minutes.
Meanings, features, attributes, applications, and examples of multiprocessors and multi computers.
So, let's get started. If you enjoy this and find the information beneficial, please like and share it with your friends.
This document provides an overview of hardware multithreading techniques including fine-grained, coarse-grained, and simultaneous multithreading. Fine-grained multithreading switches threads after every instruction to hide latency. Coarse-grained multithreading switches threads only after long stalls to avoid slowing individual threads. Simultaneous multithreading issues instructions from multiple threads each cycle to better utilize functional units.
advanced computer architesture-conditions of parallelismPankaj Kumar Jain
This PPT contains Data and Resource Dependencies,Control Dependence,Resource Dependence,Bernstein’s Conditions ,Hardware And Software Parallelism,Types of Software Parallelism
This document discusses vector processing and multiprocessor principles. It explains that vector processing performs operations on vectors to gain speedups of 10-20x over scalar processing. Multiprocessor systems use two or more CPUs for advantages like reduced costs, increased reliability and throughput. They can implement techniques like multitasking, multithreading and multiprogramming to execute multiple tasks simultaneously.
This document discusses hardware and software parallelism in computer systems. It defines hardware parallelism as parallelism enabled by the machine architecture through multiple processors or functional units. Software parallelism refers to parallelism exposed in a program's control and data dependencies. Modern computer architectures require support for both types of parallelism to perform multiple tasks simultaneously. However, there is often a mismatch between the hardware and software parallelism available. For example, a dual-processor system may be able to execute 12 instructions in 6 cycles, but the program's inherent parallelism may only allow completing the instructions in 7 cycles. Achieving optimal parallelism requires coordination between hardware design and software programming.
The primary reasons for using parallel computing:
Save time - wall clock time
Solve larger problems
Provide concurrency (do multiple things at the same time)
2 parallel processing presentation ph d 1st semesterRafi Ullah
This document discusses parallel processing. It begins by defining parallel processing as a form of processing where many instructions are carried out simultaneously by multiple processors. It then discusses why parallel processing is needed due to increasing computational demands and the limitations of increasing processor speeds alone. It classifies different types of parallel processor architectures including single instruction single data (SISD), single instruction multiple data (SIMD), multiple instruction single data (MISD), and multiple instruction multiple data (MIMD). The document concludes by outlining some advantages of parallel processing such as saving time and cost and solving larger problems, and provides examples of applications that benefit from parallel processing.
The document discusses various methods for input/output (IO) in computer systems, including IO interfaces, programmed IO, interrupt-initiated IO, direct memory access (DMA), and input-output processors (IOPs). It describes how each method facilitates the transfer of data between the CPU, memory, and external IO devices.
This presentation deals with how one can utilize multiple cores, while working with C/C++ applications using an API called OpenMP. It's a shared memory programming model, built on top of POSIX thread. Also the fork-join model, parallel design pattern are discussed using PetriNets.
An explicitly parallel program must specify concurrency and interaction between concurrent subtasks.
The former is sometimes also referred to as the control structure and the latter as the communication model.
The document discusses parallelism and techniques to improve computer performance through parallel execution. It describes instruction level parallelism (ILP) where multiple instructions can be executed simultaneously through techniques like pipelining and superscalar processing. It also discusses processor level parallelism using multiple processors or processor cores to concurrently execute different tasks or threads.
This document discusses centralized shared-memory architectures and cache coherence protocols. It begins by explaining how multiple processors can share memory through a shared bus and cached data. It then discusses the cache coherence problem that arises when caches contain replicated data. Write invalidate is introduced as the most common coherence protocol, where a write invalidates other caches' copies of the block. The implementation of write invalidate protocols with snooping and directory approaches is covered, focusing on supporting write-back caches through tracking shared state and bus snooping.
Parallel algorithms can be specifically written to execute on computers with multiple processors. They are often modeled using parallel random-access machines (PRAM) which allow for an unlimited number of processors that can access shared memory uniformly. Common parallel algorithms include matrix multiplication, merge sort, and shortest path algorithms like Floyd's algorithm.
Unit 1 architecture of distributed systemskaran2190
The document discusses the architecture of distributed systems. It describes several models for distributed system architecture including:
1) The mini computer model which connects multiple minicomputers to share resources among users.
2) The workstation model where each user has their own workstation and resources are shared over a network.
3) The workstation-server model combines workstations with centralized servers to manage shared resources like files.
Pipeline processing and space time diagramRahul Sharma
Pipeline processing breaks down sequential processes into sub-operations that execute concurrently in dedicated segments. It is illustrated using a space-time diagram that shows segment utilization over time. For a K-segment pipeline with a clock cycle tp, the first task takes Ktp to complete while remaining tasks finish every tp, with all N tasks completing in (K+N-1)tp time.
For Complete Learning: http://www.thelearnet.com/
What is an Operating System?
Mainframe Systems
Desktop Systems
Multiprocessor Systems
Distributed Systems
Clustered System
Real -Time Systems
Handheld Systems
Computing Environments
For Complete Learning: http://www.thelearnet.com/
Computer System Operation
I/O Structure
Storage Structure
Storage Hierarchy
Hardware Protection
General System Architecture
This document discusses the evolution of computer systems from early relay-based computers to modern parallel processing systems. It covers the progression from vacuum tubes to integrated circuits, increasing computer speeds and capabilities over generations. The key aspects covered are:
1. Computer components including the CPU, memory, and I/O have advanced significantly from early electromechanical to modern integrated systems.
2. Parallel processing has increased from basic multiprocessing to finer-grained instruction-level parallelism using pipelining and multiple functional units.
3. Uniprocessor computers exploit parallelism through techniques like overlapping I/O and CPU operations, hierarchical memory systems, and multiprogramming.
In this presentation, you will learn the fundamentals of Multi Processors and Multi Computers in only a few minutes.
Meanings, features, attributes, applications, and examples of multiprocessors and multi computers.
So, let's get started. If you enjoy this and find the information beneficial, please like and share it with your friends.
This document provides an overview of hardware multithreading techniques including fine-grained, coarse-grained, and simultaneous multithreading. Fine-grained multithreading switches threads after every instruction to hide latency. Coarse-grained multithreading switches threads only after long stalls to avoid slowing individual threads. Simultaneous multithreading issues instructions from multiple threads each cycle to better utilize functional units.
advanced computer architesture-conditions of parallelismPankaj Kumar Jain
This PPT contains Data and Resource Dependencies,Control Dependence,Resource Dependence,Bernstein’s Conditions ,Hardware And Software Parallelism,Types of Software Parallelism
This document discusses vector processing and multiprocessor principles. It explains that vector processing performs operations on vectors to gain speedups of 10-20x over scalar processing. Multiprocessor systems use two or more CPUs for advantages like reduced costs, increased reliability and throughput. They can implement techniques like multitasking, multithreading and multiprogramming to execute multiple tasks simultaneously.
This document discusses hardware and software parallelism in computer systems. It defines hardware parallelism as parallelism enabled by the machine architecture through multiple processors or functional units. Software parallelism refers to parallelism exposed in a program's control and data dependencies. Modern computer architectures require support for both types of parallelism to perform multiple tasks simultaneously. However, there is often a mismatch between the hardware and software parallelism available. For example, a dual-processor system may be able to execute 12 instructions in 6 cycles, but the program's inherent parallelism may only allow completing the instructions in 7 cycles. Achieving optimal parallelism requires coordination between hardware design and software programming.
The primary reasons for using parallel computing:
Save time - wall clock time
Solve larger problems
Provide concurrency (do multiple things at the same time)
2 parallel processing presentation ph d 1st semesterRafi Ullah
This document discusses parallel processing. It begins by defining parallel processing as a form of processing where many instructions are carried out simultaneously by multiple processors. It then discusses why parallel processing is needed due to increasing computational demands and the limitations of increasing processor speeds alone. It classifies different types of parallel processor architectures including single instruction single data (SISD), single instruction multiple data (SIMD), multiple instruction single data (MISD), and multiple instruction multiple data (MIMD). The document concludes by outlining some advantages of parallel processing such as saving time and cost and solving larger problems, and provides examples of applications that benefit from parallel processing.
The document discusses various methods for input/output (IO) in computer systems, including IO interfaces, programmed IO, interrupt-initiated IO, direct memory access (DMA), and input-output processors (IOPs). It describes how each method facilitates the transfer of data between the CPU, memory, and external IO devices.
This presentation deals with how one can utilize multiple cores, while working with C/C++ applications using an API called OpenMP. It's a shared memory programming model, built on top of POSIX thread. Also the fork-join model, parallel design pattern are discussed using PetriNets.
An explicitly parallel program must specify concurrency and interaction between concurrent subtasks.
The former is sometimes also referred to as the control structure and the latter as the communication model.
The document discusses parallelism and techniques to improve computer performance through parallel execution. It describes instruction level parallelism (ILP) where multiple instructions can be executed simultaneously through techniques like pipelining and superscalar processing. It also discusses processor level parallelism using multiple processors or processor cores to concurrently execute different tasks or threads.
This document discusses centralized shared-memory architectures and cache coherence protocols. It begins by explaining how multiple processors can share memory through a shared bus and cached data. It then discusses the cache coherence problem that arises when caches contain replicated data. Write invalidate is introduced as the most common coherence protocol, where a write invalidates other caches' copies of the block. The implementation of write invalidate protocols with snooping and directory approaches is covered, focusing on supporting write-back caches through tracking shared state and bus snooping.
Parallel algorithms can be specifically written to execute on computers with multiple processors. They are often modeled using parallel random-access machines (PRAM) which allow for an unlimited number of processors that can access shared memory uniformly. Common parallel algorithms include matrix multiplication, merge sort, and shortest path algorithms like Floyd's algorithm.
Unit 1 architecture of distributed systemskaran2190
The document discusses the architecture of distributed systems. It describes several models for distributed system architecture including:
1) The mini computer model which connects multiple minicomputers to share resources among users.
2) The workstation model where each user has their own workstation and resources are shared over a network.
3) The workstation-server model combines workstations with centralized servers to manage shared resources like files.
Pipeline processing and space time diagramRahul Sharma
Pipeline processing breaks down sequential processes into sub-operations that execute concurrently in dedicated segments. It is illustrated using a space-time diagram that shows segment utilization over time. For a K-segment pipeline with a clock cycle tp, the first task takes Ktp to complete while remaining tasks finish every tp, with all N tasks completing in (K+N-1)tp time.
For Complete Learning: http://www.thelearnet.com/
What is an Operating System?
Mainframe Systems
Desktop Systems
Multiprocessor Systems
Distributed Systems
Clustered System
Real -Time Systems
Handheld Systems
Computing Environments
For Complete Learning: http://www.thelearnet.com/
Computer System Operation
I/O Structure
Storage Structure
Storage Hierarchy
Hardware Protection
General System Architecture
The document discusses several networking concepts:
- Classless Inter-Domain Routing (CIDR) allows ISPs to allocate blocks of IP addresses to organizations in a more efficient manner than previous methods.
- Network Address Translation (NAT) allows a local network to use private IP address ranges behind a NAT-enabled router that maps the private addresses to a single public IP address for communication with external networks.
- Subnetting and Variable Length Subnet Masking (VLSM) allow networks to be divided into subnets to better utilize limited IP address blocks and assign addresses based on subnet needs.
- Supernetting combines multiple classful network blocks into larger supernets to more efficiently use address space.
This document provides an overview of several internet security protocols:
- IPSec is a collection of protocols that provide security at the network level by using two modes (transport and tunnel) and two security protocols. It is designed by IETF.
- SSL/TLS provides security at the transport layer and are the dominant protocols, with TLS being an IETF version of SSL. They use cryptography to establish secure sessions.
- PGP provides security at the application layer to create encrypted and authenticated emails. It uses public-key cryptography and key rings to establish trust between parties.
- Firewalls are devices that control access to a system by filtering packets between the internal network and the internet, using either packet-filter
The document discusses operating systems and some of their core concepts. It defines an operating system as a program that manages computer hardware and acts as an intermediary between users and the computer. It then discusses key OS components like process management, memory management, and protection systems. It also covers concepts like multiprocessing, threads, process states, and context switching.
For Complete Learning: http://www.thelearnet.com/
System Components
Operating System Services
System Calls
System Programs
System Structure
Virtual Machines
System Design and Implementation
System Generation
This document contains information about Tanmay Kataria, including his name, class, and roll number. It then discusses different types of computer software, including system software like operating systems, and application software. It provides details on operating systems, describing them as an interface between users and hardware that controls resources and peripherals. Common operating systems mentioned include Windows and UNIX.
The document discusses 5 types of application programs: word processors, presentations, spreadsheets, databases, and accounting software. It notes that Microsoft Word, PowerPoint, Excel, Access, and QuickBooks are popular programs for word processing, presentations, spreadsheets, databases, and accounting respectively. Each application type is described briefly by 1-2 functions.
Application software helps users perform specific tasks like word processing, graphics design, and playing games. There are three main types: commercial applications that must be purchased, shareware that users can try before buying, and freeware that is free to use. Common applications include word processors, spreadsheets, graphics programs, databases, and communication tools. Software vendors often bundle multiple applications together at a lower combined price for compatibility and usability. Applications are designed to run on specific operating systems and may not be compatible across platforms. The operating system manages interactions with the computer hardware and must run for any programs to function, while applications are optional programs for specific tasks.
This chapter discusses operating system structures and concepts. It describes the services operating systems provide to users and processes, such as user interfaces, program execution, I/O operations, file manipulation, communications, and error detection. It also discusses how operating systems ensure efficient resource sharing through resource allocation, accounting, protection and security. The chapter covers system calls, which are the programming interface to OS services, and how system calls are typically implemented and accessed through APIs rather than direct calls.
The document discusses different types of software. It defines system software as operating systems that manage hardware resources and enable application software to function. Application software is designed for specific tasks like word processing, spreadsheets, web browsing, and presentations. Application software depends on system software and comes in tailor-made, general purpose, and application package categories. Common examples of application software are described, including their main features and purposes.
The document defines and describes various types of application software, including productivity software. Productivity software helps users be more efficient and includes applications like word processors, spreadsheets, databases, and presentation software. Word processing software allows creating and editing documents, with features such as fonts, formatting, spell checkers, and the ability to easily edit content.
This document discusses register transfer language and micro-operations. It describes how registers store information and how register transfer language is used to define the transfer of data between registers using micro-operations like shift, clear and load. It also discusses how bus systems, memory transfers, and arithmetic logic shift units are used to perform these micro-operations and transfer data.
Application software directly performs tasks for the user like writing letters, creating presentations, or playing DVDs, in contrast to system software which integrates the computer's capabilities without directly applying them. Application software refers both to the program itself and its implementation. It is generally the primary reason users turn on their computer in the first place to complete tasks like writing or watching videos. The homework questions from pages 235-237 of the book should be completed and uploaded since school internet access may be unreliable over the break due to maintenance.
The document discusses different types of software. It defines software as computer programs and data that provide instructions for what a computer should do. There are three basic types of software: system software which operates computer hardware and provides a platform for applications; programming software which provides tools for writing computer programs; and application software or apps which are designed for end users. Some examples of application software include word processing programs, database programs, spreadsheet programs, and multimedia and presentation programs.
Application software is designed to help users perform specific tasks. There are several types of application software including programming software, system software, word processing software, spreadsheet software, database software, presentation software, and multimedia software. Examples of application software include enterprise software, accounting software, office suites, and graphics software.
Application software directly manipulates text, numbers, and graphics to perform dedicated tasks like word processing, spreadsheets, presentations, databases, and multimedia. Word processing software creates and edits documents, spreadsheet software allows calculations in cells like Excel, and presentation software displays slideshows like PowerPoint. Database software stores and retrieves data from databases, while multimedia software plays audio and video files.
Application software comes in many forms, including packaged, custom, web-based, open source, shareware, and freeware. It can be categorized based on its purpose, such as business software, graphics/multimedia software, home/personal software, and communication software. Web 2.0 refers to websites offering web-based software, allowing users to interact and collaborate online. Application service providers (ASPs) manage and distribute software applications via the web. Learning tools like help files, templates, and online training help users support application software.
This document provides an overview of application software. It defines application software as programs designed for end users to perform tasks beyond running the computer itself, such as word processors, web browsers, and spreadsheets. It discusses why application software is used to increase productivity and organize personal tasks. Common features of application software are described, such as insertion points, scrolling, windows, menus, and dialog boxes. Methods of software distribution including packaged, custom, open source, shareware, and freeware are also summarized.
The document provides an overview of operating system concepts, including:
- The four main components of a computer system: hardware, operating system, applications, and users.
- What operating systems do, such as managing resources and controlling programs.
- Computer system organization involving CPUs, memory, I/O devices, and interrupts.
- Operating system structures like processes, memory management, and storage management.
The document discusses operating system services and functions. It describes that an operating system manages computer resources, provides services for programmers, and schedules program execution. It then lists and describes key operating system services like program creation, execution, I/O access, file access, error handling, and accounting. The document also discusses how the operating system acts as a resource manager and describes common types of operating systems, scheduling, memory management techniques like swapping and paging, and how logical addresses are mapped to physical addresses.
This document provides an introduction and overview of operating systems. It begins with definitions of operating systems and their role in managing computer hardware resources and acting as an interface between users and computers. Some key functions of operating systems are then summarized, including memory management, processor management, device management, file management, and security. Popular operating system types are also briefly outlined, such as batch operating systems, multi-programming systems, time-sharing systems, distributed systems, and real-time systems.
An operating system manages computer hardware resources and provides an interface between users and applications. It controls hardware, allocates memory and storage space, manages files, handles input/output between hardware and applications, provides security, and interprets commands. The main goals of an operating system are to make the computer convenient for users and efficiently use hardware resources. Common operating systems include those for mainframes, personal computers, distributed systems, real-time systems, and more specialized operating systems. Operating systems perform essential functions like process management, memory management, file management, input/output management, secondary storage management, and more.
This document provides an overview of operating system concepts including system components, operating system services, system programs, system calls, process management, and process states. It describes the four main components of a computer system as hardware, operating system, application programs, and users. It defines key operating system concepts such as multiprogramming, time-sharing, distributed systems, and real-time systems. It also explains process management topics like process states, process control blocks, and context switching.
This document provides an overview of operating system concepts including system components, batch systems, spooling, multiprogramming, time-sharing systems, distributed systems, parallel systems, real-time embedded systems, system structures, system calls, system programs, and process management. It describes the basic functions of an operating system in managing hardware resources, running application programs, and allowing multiple processes to run concurrently through techniques like multiprocessing and time-sharing.
The document discusses operating systems and their key functions. An operating system acts as an intermediary between users and computer hardware. It hides hardware details and provides a convenient interface. Operating systems execute programs, allocate resources efficiently between users and applications, and make the computer system easier to use.
A brief introduction about an operating system and its architectureGuna Dhondwad
What is an Operating System?
Interaction between
Types of Operating Systems - Time-Sharing Systems, Personal Computer Systems, Parallel
Systems, Distributed Systems, Real Time Systems,
System Components
Operating System Services
System Calls
System Programs
The document provides an overview of operating system concepts. It defines an operating system as a program that acts as an intermediary between the user and computer hardware, managing resources and running programs. It describes the role of operating systems in virtualizing resources, providing protection and security, managing processes, memory, files, devices and networks. It also discusses different types of operating systems used in various computing environments like desktop systems, parallel systems, distributed systems, and real-time systems.
The document discusses operating systems and their key functions. It defines an operating system as a program that acts as an intermediary between the user and computer hardware. The main goals of an operating system are to execute user programs, make problem solving easier for users, and efficiently use computer hardware. It also controls low-level components like the CPU, memory, and I/O devices, and coordinates their use among application programs and users.
This chapter provides an introduction and overview of operating systems. It defines an operating system as a program that manages computer hardware and software resources and provides common services for computer programs. It describes the components of a computer system including hardware, operating system, application programs, and users. It then discusses the structure and functions of operating systems, including process management, memory management, storage management, protection and security, and distributed systems. It provides examples of different computing environments like traditional, client-server, peer-to-peer, and web-based computing.
FellowBuddy.com is an innovative platform that brings students together to share notes, exam papers, study guides, project reports and presentation for upcoming exams.
We connect Students who have an understanding of course material with Students who need help.
Benefits:-
# Students can catch up on notes they missed because of an absence.
# Underachievers can find peer developed notes that break down lecture and study material in a way that they can understand
# Students can earn better grades, save time and study effectively
Our Vision & Mission – Simplifying Students Life
Our Belief – “The great breakthrough in your life comes when you realize it, that you can learn anything you need to learn; to accomplish any goal that you have set for yourself. This means there are no limits on what you can be, have or do.”
Like Us - https://www.facebook.com/FellowBuddycom
An operating system acts as an interface between software and hardware, managing computer resources and monitoring program execution. It provides a user-friendly interface to utilize hardware in a concealed manner. Common operating systems include Windows, Linux, and UNIX. An operating system performs tasks like memory management, processor allocation, device management, file management, and security. Operating systems can be classified as batch, multiprogramming, time-sharing, real-time, multitasking, and multiprocessing based on their design and capabilities.
The document provides an overview of operating systems, including their goals, advantages, components, and views from the user and system perspectives. It describes various operating system techniques like spooling, time-sharing, multiprocessor systems, distributed systems, and real-time systems. Multiprocessor systems can be symmetric (SMP) or asymmetric (AMP) depending on how processors are treated. Distributed systems have loosely coupled processors that communicate over a network, providing benefits like improved communication, computation speedup, reliability, and resource sharing. Real-time systems ensure tasks are completed within deadlines and can be soft or hard, with safety-critical systems usually requiring hard real-time guarantees.
1.Operating System-unit 1.pptx Evolution of operating systems: Batch, times...RahulNavale5
Evolution of operating systems: Batch, timesharing, multiprogramming, multi-tasking anddistributed and real time. Operating system componentsO.S. ServicesSystem CallsSystem ProgramsSystem StructureVirtual MachinesSpecial purpose operating systemsOpen-source operating systemsBoot ProcedureOverview of the GNU/Linux system administration.
The document discusses operating systems and their key concepts. It begins by defining an operating system as a program that acts as an intermediary between the user and computer hardware, allocating resources and controlling programs. It then describes the four main components of a computer system - hardware, operating system, application programs, and users. Finally, it outlines different types of operating systems including batch systems, timesharing systems, multiprocessing systems, distributed systems, client/server systems, and real-time embedded systems.
operating system over view.ppt operating sysyemsJyoReddy9
The document discusses the key concepts of operating systems including their goals, structure, functions and management of processes, memory, storage and security. Specifically, it describes how an operating system acts as an intermediary between the user and hardware to execute programs efficiently while making resource allocation decisions. It also outlines the hierarchy of computer storage and caching strategies used to optimize performance.
Relations can be represented as two-dimensional data tables with rows and columns. The rows of a relation are called tuples.
The columns of a relation are called attributes. The attributes draw values from a domain (a legal pool of values).
Relational data base management system (Unit 1)Ismail Mukiibi
Introduction to Relational database management system, A definition of an RDBMS is a DBMS in which data is stored in tables and the relationships among the data are also stored in tables. The data can be accessed or reassembled in many different ways without having to change the table forms.
What is Quality of Service?
-Basic mechanisms
-Leaky and token buckets
-Integrated Services (IntServ)
-Differentiated Services (DiffServ)
-Economics and Social factors facing QoS
-QoS Vs. Over Provisioning
How do we get datagrams to the right physical host?
Tricky part comes when a router is forwarding to a LAN with multiple hosts (which is typically the case)
IP datagrams contain an IP address
Configured in OS
NIC’s only understand addressing of their particular network
Ethernet’s 48 bit MAC addresses
Traffic characterization parameters like bandwidth, delay, and jitter requirements are used to specify network traffic flows. Traffic shaping techniques like leaky bucket and token bucket regulate traffic into defined patterns to facilitate admission control and traffic policing. The leaky bucket traffic shaper uses a finite bucket that leaks data out at a constant rate to shape traffic bursts according to the bucket size and leak rate. Queue scheduling disciplines like weighted fair queueing determine which packet is served next to affect packet delay, bandwidth, and jitter. Resource reservation protocols negotiate quality of service guarantees by reserving required network resources.
PHP is a server-side scripting language that can be embedded into HTML pages using PHP tags. When a PHP page is requested, the server will execute any PHP code and output the results. PHP allows variables, control structures, and functions to handle tasks like form processing, file uploads, and database access. Functions like file() can read file contents into an array, and files can be uploaded and moved using the $_FILES array and move_uploaded_file() function. PHP scripts can generate dynamic web page content on the server before sending the page to the client.
HTML is a markup language used to define the structure and layout of web pages. Key points:
- HTML uses tags like <h1> and <p> to describe headings and paragraphs in a web page.
- The <html> tag defines an HTML document, <body> contains visible page content.
- Links are defined with <a> tags, images with <img> tags.
- HTML documents are displayed in web browsers, which interpret the tags but hide them from view.
- HTML is a simple language for structuring information, not for page layout or formatting.
Computers are not complicated device,
They are not infinitely intelligent
They do not think better than people.
A computer can only do what a programs instruct through programs
Advanced computer architect lesson 3 and 4Ismail Mukiibi
The document discusses various addressing modes used in instruction sets including immediate, direct, indirect, register, register indirect, displacement, indexed, stack, and relative addressing. It provides the algorithms and merits and demerits of each mode. For example, immediate addressing has the operand value in the instruction but is limited in magnitude, while indirect addressing allows a large address space but requires multiple memory references. The document also summarizes addressing modes for various processors like Pentium, x86, PowerPC and their calculations.
Advanced computer architecture lesson 5 and 6Ismail Mukiibi
The document discusses reduced instruction set computers (RISC) and compares them to complex instruction set computers (CISC). Key characteristics of RISC include simple, uniform instructions that are executed in one cycle; register-to-register operations with simple addressing modes; and a large number of registers to optimize register usage and minimize memory accesses. Studies show programs use simple operations, operands, and addressing modes most frequently, informing the RISC design which aims to efficiently support common cases through hard-wired, streamlined instructions.
The document provides sample questions and answers related to PC maintenance and repair. It includes guidelines for preventive maintenance, definitions of technical terms like jumper pins and CMOS batteries, instructions for configuring hard disks and optical drives, and steps for installing Windows XP Service Pack 2 and activating unlicensed Windows 7. The key points covered are procedures for disassembling, cleaning, and checking hardware and software, definitions of components and interfaces, how to set jumper pins for multiple storage devices, and a detailed process for installing each operating system from start to finish.
MAC addresses are 48- or 64-bit identifiers linked to the hardware of network adapters. They are expressed as hexadecimal strings like 01-23-45-67-89-AB. There are two types: universally administered addresses, which are assigned at manufacture with the first three octets identifying the manufacturer, and locally administered addresses, which can be manually changed but must be unique on the local subnet. MAC addresses can be useful for security and troubleshooting network issues.
The document describes different types of computer networks, including peer-to-peer networks where all computers are equal and function as both clients and servers without a central administrator, and server-based networks where a central server controls resources and security is managed by an administrator. It also discusses local area networks (LANs) which connect computers within a single location using cables, wireless technology, or both, allowing for sharing of hardware, software, files, and other resources.
Peer-to-peer networks have no central server and all computers are equal, functioning as both clients and servers. They have low setup costs but also weak security and single computer failures can disrupt printing or file sharing. Client/server networks have centralized servers that manage security, backups, larger user capacity and remote access, but require upfront investment and maintenance staff. Both network types have advantages for certain environments depending on needs around costs, security, flexibility and scale.
CBSE - Grade 8 - Science - Chemistry - Metals and Non Metals - WorksheetSritoma Majumder
Introduction
All the materials around us are made up of elements. These elements can be broadly divided into two major groups:
Metals
Non-Metals
Each group has its own unique physical and chemical properties. Let's understand them one by one.
Physical Properties
1. Appearance
Metals: Shiny (lustrous). Example: gold, silver, copper.
Non-metals: Dull appearance (except iodine, which is shiny).
2. Hardness
Metals: Generally hard. Example: iron.
Non-metals: Usually soft (except diamond, a form of carbon, which is very hard).
3. State
Metals: Mostly solids at room temperature (except mercury, which is a liquid).
Non-metals: Can be solids, liquids, or gases. Example: oxygen (gas), bromine (liquid), sulphur (solid).
4. Malleability
Metals: Can be hammered into thin sheets (malleable).
Non-metals: Not malleable. They break when hammered (brittle).
5. Ductility
Metals: Can be drawn into wires (ductile).
Non-metals: Not ductile.
6. Conductivity
Metals: Good conductors of heat and electricity.
Non-metals: Poor conductors (except graphite, which is a good conductor).
7. Sonorous Nature
Metals: Produce a ringing sound when struck.
Non-metals: Do not produce sound.
Chemical Properties
1. Reaction with Oxygen
Metals react with oxygen to form metal oxides.
These metal oxides are usually basic.
Non-metals react with oxygen to form non-metallic oxides.
These oxides are usually acidic.
2. Reaction with Water
Metals:
Some react vigorously (e.g., sodium).
Some react slowly (e.g., iron).
Some do not react at all (e.g., gold, silver).
Non-metals: Generally do not react with water.
3. Reaction with Acids
Metals react with acids to produce salt and hydrogen gas.
Non-metals: Do not react with acids.
4. Reaction with Bases
Some non-metals react with bases to form salts, but this is rare.
Metals generally do not react with bases directly (except amphoteric metals like aluminum and zinc).
Displacement Reaction
More reactive metals can displace less reactive metals from their salt solutions.
Uses of Metals
Iron: Making machines, tools, and buildings.
Aluminum: Used in aircraft, utensils.
Copper: Electrical wires.
Gold and Silver: Jewelry.
Zinc: Coating iron to prevent rusting (galvanization).
Uses of Non-Metals
Oxygen: Breathing.
Nitrogen: Fertilizers.
Chlorine: Water purification.
Carbon: Fuel (coal), steel-making (coke).
Iodine: Medicines.
Alloys
An alloy is a mixture of metals or a metal with a non-metal.
Alloys have improved properties like strength, resistance to rusting.
INTRO TO STATISTICS
INTRO TO SPSS INTERFACE
CLEANING MULTIPLE CHOICE RESPONSE DATA WITH EXCEL
ANALYZING MULTIPLE CHOICE RESPONSE DATA
INTERPRETATION
Q & A SESSION
PRACTICAL HANDS-ON ACTIVITY
The *nervous system of insects* is a complex network of nerve cells (neurons) and supporting cells that process and transmit information. Here's an overview:
Structure
1. *Brain*: The insect brain is a complex structure that processes sensory information, controls behavior, and integrates information.
2. *Ventral nerve cord*: A chain of ganglia (nerve clusters) that runs along the insect's body, controlling movement and sensory processing.
3. *Peripheral nervous system*: Nerves that connect the central nervous system to sensory organs and muscles.
Functions
1. *Sensory processing*: Insects can detect and respond to various stimuli, such as light, sound, touch, taste, and smell.
2. *Motor control*: The nervous system controls movement, including walking, flying, and feeding.
3. *Behavioral responThe *nervous system of insects* is a complex network of nerve cells (neurons) and supporting cells that process and transmit information. Here's an overview:
Structure
1. *Brain*: The insect brain is a complex structure that processes sensory information, controls behavior, and integrates information.
2. *Ventral nerve cord*: A chain of ganglia (nerve clusters) that runs along the insect's body, controlling movement and sensory processing.
3. *Peripheral nervous system*: Nerves that connect the central nervous system to sensory organs and muscles.
Functions
1. *Sensory processing*: Insects can detect and respond to various stimuli, such as light, sound, touch, taste, and smell.
2. *Motor control*: The nervous system controls movement, including walking, flying, and feeding.
3. *Behavioral responses*: Insects can exhibit complex behaviors, such as mating, foraging, and social interactions.
Characteristics
1. *Decentralized*: Insect nervous systems have some autonomy in different body parts.
2. *Specialized*: Different parts of the nervous system are specialized for specific functions.
3. *Efficient*: Insect nervous systems are highly efficient, allowing for rapid processing and response to stimuli.
The insect nervous system is a remarkable example of evolutionary adaptation, enabling insects to thrive in diverse environments.
The insect nervous system is a remarkable example of evolutionary adaptation, enabling insects to thrive
Ultimate VMware 2V0-11.25 Exam Dumps for Exam SuccessMark Soia
Boost your chances of passing the 2V0-11.25 exam with CertsExpert reliable exam dumps. Prepare effectively and ace the VMware certification on your first try
Quality dumps. Trusted results. — Visit CertsExpert Now: https://www.certsexpert.com/2V0-11.25-pdf-questions.html
K12 Tableau Tuesday - Algebra Equity and Access in Atlanta Public Schoolsdogden2
Algebra 1 is often described as a “gateway” class, a pivotal moment that can shape the rest of a student’s K–12 education. Early access is key: successfully completing Algebra 1 in middle school allows students to complete advanced math and science coursework in high school, which research shows lead to higher wages and lower rates of unemployment in adulthood.
Learn how The Atlanta Public Schools is using their data to create a more equitable enrollment in middle school Algebra classes.
This chapter provides an in-depth overview of the viscosity of macromolecules, an essential concept in biophysics and medical sciences, especially in understanding fluid behavior like blood flow in the human body.
Key concepts covered include:
✅ Definition and Types of Viscosity: Dynamic vs. Kinematic viscosity, cohesion, and adhesion.
⚙️ Methods of Measuring Viscosity:
Rotary Viscometer
Vibrational Viscometer
Falling Object Method
Capillary Viscometer
🌡️ Factors Affecting Viscosity: Temperature, composition, flow rate.
🩺 Clinical Relevance: Impact of blood viscosity in cardiovascular health.
🌊 Fluid Dynamics: Laminar vs. turbulent flow, Reynolds number.
🔬 Extension Techniques:
Chromatography (adsorption, partition, TLC, etc.)
Electrophoresis (protein/DNA separation)
Sedimentation and Centrifugation methods.
A measles outbreak originating in West Texas has been linked to confirmed cases in New Mexico, with additional cases reported in Oklahoma and Kansas. The current case count is 817 from Texas, New Mexico, Oklahoma, and Kansas. 97 individuals have required hospitalization, and 3 deaths, 2 children in Texas and one adult in New Mexico. These fatalities mark the first measles-related deaths in the United States since 2015 and the first pediatric measles death since 2003.
The YSPH Virtual Medical Operations Center Briefs (VMOC) were created as a service-learning project by faculty and graduate students at the Yale School of Public Health in response to the 2010 Haiti Earthquake. Each year, the VMOC Briefs are produced by students enrolled in Environmental Health Science Course 581 - Public Health Emergencies: Disaster Planning and Response. These briefs compile diverse information sources – including status reports, maps, news articles, and web content– into a single, easily digestible document that can be widely shared and used interactively. Key features of this report include:
- Comprehensive Overview: Provides situation updates, maps, relevant news, and web resources.
- Accessibility: Designed for easy reading, wide distribution, and interactive use.
- Collaboration: The “unlocked" format enables other responders to share, copy, and adapt seamlessly. The students learn by doing, quickly discovering how and where to find critical information and presenting it in an easily understood manner.
CURRENT CASE COUNT: 817 (As of 05/3/2025)
• Texas: 688 (+20)(62% of these cases are in Gaines County).
• New Mexico: 67 (+1 )(92.4% of the cases are from Eddy County)
• Oklahoma: 16 (+1)
• Kansas: 46 (32% of the cases are from Gray County)
HOSPITALIZATIONS: 97 (+2)
• Texas: 89 (+2) - This is 13.02% of all TX cases.
• New Mexico: 7 - This is 10.6% of all NM cases.
• Kansas: 1 - This is 2.7% of all KS cases.
DEATHS: 3
• Texas: 2 – This is 0.31% of all cases
• New Mexico: 1 – This is 1.54% of all cases
US NATIONAL CASE COUNT: 967 (Confirmed and suspected):
INTERNATIONAL SPREAD (As of 4/2/2025)
• Mexico – 865 (+58)
‒Chihuahua, Mexico: 844 (+58) cases, 3 hospitalizations, 1 fatality
• Canada: 1531 (+270) (This reflects Ontario's Outbreak, which began 11/24)
‒Ontario, Canada – 1243 (+223) cases, 84 hospitalizations.
• Europe: 6,814
A measles outbreak originating in West Texas has been linked to confirmed cases in New Mexico, with additional cases reported in Oklahoma and Kansas. The current case count is 795 from Texas, New Mexico, Oklahoma, and Kansas. 95 individuals have required hospitalization, and 3 deaths, 2 children in Texas and one adult in New Mexico. These fatalities mark the first measles-related deaths in the United States since 2015 and the first pediatric measles death since 2003.
The YSPH Virtual Medical Operations Center Briefs (VMOC) were created as a service-learning project by faculty and graduate students at the Yale School of Public Health in response to the 2010 Haiti Earthquake. Each year, the VMOC Briefs are produced by students enrolled in Environmental Health Science Course 581 - Public Health Emergencies: Disaster Planning and Response. These briefs compile diverse information sources – including status reports, maps, news articles, and web content– into a single, easily digestible document that can be widely shared and used interactively. Key features of this report include:
- Comprehensive Overview: Provides situation updates, maps, relevant news, and web resources.
- Accessibility: Designed for easy reading, wide distribution, and interactive use.
- Collaboration: The “unlocked" format enables other responders to share, copy, and adapt seamlessly. The students learn by doing, quickly discovering how and where to find critical information and presenting it in an easily understood manner.
How to manage Multiple Warehouses for multiple floors in odoo point of saleCeline George
The need for multiple warehouses and effective inventory management is crucial for companies aiming to optimize their operations, enhance customer satisfaction, and maintain a competitive edge.
How to Manage Opening & Closing Controls in Odoo 17 POSCeline George
In Odoo 17 Point of Sale, the opening and closing controls are key for cash management. At the start of a shift, cashiers log in and enter the starting cash amount, marking the beginning of financial tracking. Throughout the shift, every transaction is recorded, creating an audit trail.
Multi-currency in odoo accounting and Update exchange rates automatically in ...Celine George
Most business transactions use the currencies of several countries for financial operations. For global transactions, multi-currency management is essential for enabling international trade.
3. Operating System:
An OS is a program that controls the execution of
application programs and acts as an interface between
the user of a computer and the computer hardware.
4. Operating System Services
Program creation
Program execution
Access to I/O devices
Controlled access to files
System access
Error detection and response
Accounting
5. The Operating System (OS) typically provides services in the
following areas:
• Program creation: The OS provides a variety of
facilities and services, such as editors and debuggers, to
assist the programmer in creating programs. Typically,
these services are in the form of utility programs that are
not actually part of the OS but are accessible through the
OS.
• Program execution: A number of tasks need to be
performed to execute a program Instructions and data
must be loaded into main memory, I/O devices and files
must be initialized, and other resources must be prepared.
The OS handles all of this for the user.
• Access to I/O devices: Each I/O device requires its own
specific set of instructions or control signals for
operation. The OS takes care of the details so that the
programmer can think in terms of simple reads and writes.
6. Controlled access to files: In the case of files,
control must include an understanding of not only
the nature of the I/O device (disk drive, tape drive) but
also the file format on the storage medium. Again, the
OS worries about the details. Further, in the case of a
system with multiple simultaneous users, the OS can
provide protection mechanisms to control access to
the files.
• System access: In the case of a shared or public
system, the OS controls access to the system as a
whole and to specific system resources.The access
function must provide protection of resources and
data from unauthorized users and must resolve
conflicts for resource contention.
7. • Error detection and response: A variety of errors
can occur while a computer system is running.These
include internal and external hardware errors, such as
a memory error, or a device failure or malfunction; and
various software errors, such as arithmetic overflow,
attempt to access forbidden memory location, and
inability of the OS to grant the request of an
application. In each case, the OS must make the
response that clears the error condition with the least
impact on running applications.The response may
range from ending the program that caused the error,
to retrying the operation, to simply reporting the error
to the application.
8. Accounting: A good OS collects usage statistics for
various resources and monitor performance
parameters such as response time. On any system, this
information is useful in anticipating the need for
future enhancements and in tuning the system to
improve performance. On a multiuser system, the
information can be used for billing purposes.
9. A computer is a set of resources for the movement,
storage, and processing of data and for the control of
these functions. The OS is responsible for managing
these resources.
11. Types of Operating System
Interactive
Batch
Single program (Uni-programming)
Multi-programming (Multi-tasking)
12. . An interactive system, the user/ programmer
interacts directly with the computer, usually
through a keyboard/display terminal, to request
the execution of a job or to perform a transaction.
A batch system is the opposite of interactive.
The user’s program is batched together with
programs from other users and submitted by a
computer operator. After the program is
completed, results are printed out for the user.
13. Multiprogramming, keeps the processor as busy as
possible, by having it work on more than one program
at a time. Several programs are loaded into memory,
and the processor switches rapidly among them.
The alternative is a uniprogramming system that
works only one program at a time
14. Early Systems
Late 1940s to mid 1950s
No Operating System
Programs interact directly with hardware
Two main problems:
Scheduling
Setup time
15. These early systems presented two main problems.:
• Scheduling: Most installations used a sign-up sheet to
reserve processor time.
Typically, a user could sign up for a block of time in multiples of
a half hour or so. A user might sign up for an hour and finish in
45 minutes; this would result in wasted computer idle time. On
the other hand, the user might run into problems, not finish in
the allotted time, and be forced to stop before resolving the
problem.
• Setup time: A single program, called a job, could involve
loading the compiler plus the high-level language program
(source program) into memory, saving the compiled program
(object program), and then loading and linking together the
object program and common functions. Each of these steps
could involve mounting or dismounting tapes, or setting up card
decks. If an error occurred, the hapless user typically had to go
back to the beginning of the setup sequence.
Thus a considerable amount of time was spent just in setting up
the program to run.
16. Simple Batch Systems
Resident Monitor program
Users submit jobs to operator
Operator batches jobs
Monitor controls sequence of events to process batch
When one job is finished, control returns to Monitor
which reads next job
Monitor handles scheduling
18. Multiprogramming systems: extend the idea of
spooling and batch processing to allow several
executing programs to be in memory concurrently.
This is achieved by cycling through processes, allowing
each one to use the CPU for a specific slice of time.
Monitors were able to handle multiprogramming to a
certain extent and could start jobs, spool operations,
perform I/O, switch between user jobs, and give some
protection between jobs.
19. Time Sharing Systems
Allow users to interact directly with the computer
i.e. Interactive
Multi-programming allows a number of users to
interact with the computer
20. In a timesharing system, the CPU switches between
user sessions very quickly, giving each user a small slice
of processor time.
This procedure of switching between processes is
called context switching. The operating system
performs these context switches quickly, in essence,
giving the user a personal virtual machine.
Timesharing permits many users to share the same
CPU. By extending this idea, a system can allow many
users to share a single application.
As with timesharing systems, large interactive system
users are unaware of the other users on the system.
21. Memory Management
Uni-program
Memory split into two
One for Operating System (monitor)
One for currently executing program
Multi-program
“User” part is sub-divided and shared among active
processes
22. Swapping
Problem: I/O is so slow compared with CPU that even
in multi-programming system, CPU can be idle most
of the time
Solutions:
Increase main memory
Expensive
Leads to larger programs
Swapping
23. What is Swapping?
Long term queue of processes stored on disk
Processes “swapped” in as space becomes available
As a process completes it is moved out of main
memory
If none of the processes in memory are ready (i.e. all
I/O blocked)
Swap out a blocked process to intermediate queue
Swap in a ready process or a new process
But swapping is an I/O process…
25. Partitioning
Splitting memory into sections to allocate to processes
(including Operating System)
Fixed-sized partitions
May not be equal size
Process is fitted into smallest hole that will take it (best
fit)
Some wasted memory
Leads to variable sized partitions
26. Real-time, Multiprocessor, and
Distributed/Networked Systems
Real-time systems are used for process control in manufacturing plants,
assembly lines, robotics etc.
Real-time systems have severe timing constraints. If specific deadlines
are not met, physical damage or other undesirable effects to persons or
property can occur. Because these systems must respond to external
events, correct process scheduling is critical.
In hard real-time systems (with potentially fatal results if deadlines aren't
met), there can be no errors.
In soft real-time systems, meeting deadlines is desirable, but does not
result in catastrophic results if deadlines are missed.
27. Multiprocessor systems have more than one processor that must be
scheduled. In multiprocessing environment, the CPUs cooperate with
each other to solve problems, working in parallel to achieve a common
goal. System synchronization requirements determine whether the
processors are designed using tightly coupled or loosely coupled
communication methods.
Tightly coupled multiprocessors share a single centralized memory,
which requires that an operating system must synchronize processes
very carefully to assure protection. Symmetric multiprocessors (SMPs)
are a popular form of tightly coupled architecture. These systems have
multiple processors that share memory and I/O devices. All processors
perform the same functions, with the processing load being distributed
among all of them.
28. Loosely coupled multiprocessors have a physically distributed memory,
also known as distributed systems.
A distributed collection of workstations on a LAN, each with its own
operating system, is typically referred to as a networked system. These
systems were motivated by a need for multiple computers to share
resources. A network operating system includes the necessary
provisions, such as remote command execution, remote file access, and
remote login, to attach machines to the network.
Network file systems are one of the most important applications of
networked systems. These allow multiple machines to share one logical
file system, although the machines are located in different geographical
locations and may have different architectures and unrelated operating
systems.
29. Operating System Design
The operating system controls the basic functions of the
computer, including memory management and I/O, not to
mention the "look and feel" of the interface. An operating system
differs from most other software in that it is event driven,
meaning it performs tasks in response to commands, application
programs, I/O devices, and interrupts.
Four main factors drive operating system design:
performance,
power,
cost, and
compatibility.
30. Two components are crucial in operating system design:
the kernel and
the system programs.
The kernel is the core of the operating system and is used by the
process manager, the scheduler, the resource manager, and the I/O
manager and is responsible for scheduling, synchronization,
protection/security, memory management, and dealing with
interrupts.
It has primary control of system hardware, including interrupts,
control registers, status words, and timers, loads all device drivers,
provides common utilities, and coordinates all I/O activity.
The kernel must know the specifics of the hardware to combine all of
these pieces into a working system.
31. Operating System Services
The operating system oversees all critical system
management tasks, including memory management,
process management, protection, and interaction with
I/O devices and the operating system determines how
the user interacts with the computer, serving as a
buffer between the user and the hardware. Each of
these functions is an important factor in determining
overall system performance and usability.
32. The Human Interface
The operating system provides a layer of abstraction between the
user and the hardware of the machine. The operating system
provides an interface to hide the details of the bare machine.
Operating systems provide three basic interfaces, each providing
a different view for a particular individual. Hardware developers
are interested in the operating system as an interface to the
hardware. Applications developers view the operating system as
an interface to various application programs and services.
Ordinary users are most interested in the graphical interface,
which is the interface most commonly associated with the term
interface
33. Operating system user interfaces can be divided into two
general categories:
command line interfaces
graphical user interfaces (GUIs).
Command line interfaces provide a prompt at which the
user enters various commands, including those for copying
files, deleting files, providing a directory listing, and
manipulating the directory structure.
GUIs provide a more accessible interface for the casual user.
They include features such as icons and other graphical
representations of files that are manipulated using a
mouse.
34. Process Management
Process management includes everything from creating
processes (setting up the appropriate structures to store
information about each one), to scheduling processes' use
of various resources, to deleting processes and cleaning up
after their termination.
The operating system keeps track of each process, its status
(which includes the values of variables, the contents of
CPU registers, and the actual state—running, ready, or
waiting—of the process), the resources it is using, and
those that it requires.
35. The kernel is managing a collection of processes,
consisting of user processes and system processes.
Process scheduling is a large part of the operating
system's normal routine.
Multitasking (allowing multiple processes to run
concurrently) and multithreading (allowing a process
to be subdivided into different threads of control)
provide interesting challenges for CPU scheduling.
36. A thread is the smallest schedulable unit in a system.
Threads share the same execution environment as their
parent process, including its CPU registers and page table.
Depending on the degree of concurrency required, it is
possible to have one process with one thread, one process
with multiple threads, multiple single-threaded processes,
or multiple multithreaded processes. An operating system
that supports multithreading must be able to handle all
combinations
37. Resource Management
In addition to process management, the operating system
manages system resources.
For example, multiple processes can share one processor,
multiple programs can share physical memory, and
multiple users and files can share one disk.
There are three resources that are of major concern to the
operating system: the CPU, memory, and I/O. Access to the
CPU is controlled by the scheduler. Memory and I/O access
requires a different set of controls and functions
38. Security and Protection
Resource sharing, however, creates a multitude of exposures, such as the
potential for unauthorized access or modification of data.
Concurrent processes must be protected from each other, and operating
system processes must be protected from all user processes.
Without this protection, a user program could potentially wipe out the
operating system code for dealing with, say, interrupts.
Multiuser systems require additional security services to protect both shared
resources (such as memory and I/O devices) and nonshared resources (such as
personal files). Memory protection safeguards against a bug in one user's
program affecting other programs or a malicious program taking control of the
entire system. CPU protection makes sure user programs don't get stuck in
infinite loops, consuming CPU cycles needed by other jobs.
40. Positional Numbering
The general idea behind positional numbering systems is that a
numeric value is represented through increasing powers of a
radix (or base). This is often referred to as a weighted
numbering system because each position is weighted by a
power of the radix.
The set of valid numerals for a positional numbering system is
equal in size to the radix of that system. For example, there are
10 digits in the decimal system, 0 through 9, and 3 digits for the
ternary (base 3) system, 0, 1, and 2. The largest valid number in
a radix system is one smaller than the radix, so 8 is not a valid
numeral in any radix system smaller than 9. To distinguish
among numbers in different radices, we use the radix as a
subscript, such as in 3310 to represent the decimal number 33.
41. Example:
Three numbers represented as powers of a radix.
243.5110 = 2 x 102 + 4 x 101 + 3 x 100 + 5 x 10-1 + 1 x 10-2
2123 = 2 x 32 + 1 x 31 + 2 x 30 = 2310
101102 = 1 x 24 + 0 x 23 + 1 x 22 + 1 x 21 + 0 x 20 = 2210
42. Signed Integer Representation
Signed numbers require additional issues to be addressed.
When an integer variable is declared in a program, many
programming languages automatically allocate a storage
area that includes a sign as the first bit of the storage
location. By convention, a "1" in the high-order bit indicates
a negative number. The storage location can be as small as
an 8-bit byte or as large as several words, depending on the
programming language and the computer system. The
remaining bits (after the sign bit) are used to represent the
number itself.
How this number is represented depends on the method
used. There are three commonly used approaches. The most
intuitive method, signed magnitude, uses the remaining bits
to represent the magnitude of the number
43. Signed Magnitude
Up to this point, we have ignored the possibility of binary representations
for negative numbers. The set of positive and negative integers is referred
to as the set of signed integers. The problem with representing signed
integers as binary values is the sign—how should we encode the actual
sign of the number?
Signedmagnitude representation is one method of solving this problem.
As its name implies, a signed-magnitude number has a sign as its left-
most bit (also referred to as the high-order bit or the most significant bit)
while the remaining bits represent the magnitude (or absolute value) of
the numeric value.
For example, in an 8-bit word, –1 would be represented as 10000001, and
+1 as 00000001. In a computer system that uses signed-magnitude
representation and 8 bits to store integers, 7 bits can be used for the
actual representation of the magnitude of the number. This means that
the largest integer an 8-bit word can represent is 27 – 1 or 127 (a zero in the
high-order bit, followed by 7 ones). The smallest integer is 8 ones, or –
127. Therefore, N bits can represent –2(N – 1) – 1 to 2(N – 1) –1.
44. Complement Systems
Number theorists have known for hundreds of years that one decimal
number can be subtracted from another by adding the difference of the
subtrahend from all nines and adding back a carry. This is called taking
the nine's complement of the subtrahend, or more formally, finding the
diminished radix complement of the subtrahend. Let's say we wanted to
find 167 – 52. Taking the difference of 52 from 999, we have 947. Thus,
in nine's complement arithmetic we have 167 – 52 = 167 + 947 = 114. The
"carry" from the hundreds column is added back to the units place,
giving us a correct 167 – 52 = 115. This method was commonly called
"casting out 9s" and has been extended to binary operations to simplify
computer arithmetic. The advantage that complement systems give us
over signed magnitude is that there is no need to process sign bits
separately, but we can still easily check the sign of a number by looking
at its high-order bit.
45. Another way to envision complement systems is to imagine
an odometer on a bicycle. Unlike cars, when you go
backward on a bike, the odometer will go backward as well.
Assuming an odometer with three digits, if we start at zero
and end with 700, we can't be sure whether the bike went
forward 700 miles or backward 300 miles! The easiest
solution to this dilemma is simply to cut the number space
in half and use 001–500 for positive miles and 501–999 for
negative miles. We have, effectively, cut down the distance
our odometer can measure. But now if it reads 997, we
know the bike has backed up 3 miles instead of riding
forward 997 miles. The numbers 501–999 represent the
radix complements (the second of the two methods
introduced below) of the numbers 001–500 and are being
used to represent negative distance.
46. Error Detection And Correction
Regardless of the coding method used, no communications
channel or storage medium can be completely error-free. It is
a physical impossibility. As transmission rates are increased,
bit timing gets tighter. As more bits are packed per square
millimeter of storage, flux densities increase. Error rates
increase in direct proportion to the number of bits per
second transmitted, or the number of bits per square
millimeter of magnetic storage.
A parity bit could be added to an ASCII byte to help
determine whether any of the bits had become corrupted
during transmission. This method of error detection is
limited in its effectiveness: Simple parity can detect only an
odd number of errors per byte. If two errors occur, we are
helpless to detect a problem.
47. you should keep in mind that just as it is impossible to
create an error-free medium, it is also impossible to detect
or correct 100% of all errors that could occur in a medium.
Error detection and correction is yet another study in the
tradeoffs that one must make in designing computer
systems. The well-constructed error control system is
therefore a system where a "reasonable" number of the
"reasonably" expected errors can be detected or corrected
within the bounds of "reasonable" economics.
48. Cyclic Redundancy Check
Checksums are used in a wide variety of coding systems, from bar codes
to International Standard Book Numbers (ISBNs). These are self-
checking codes that will quickly indicate whether the preceding digits
have been misread. Cyclic redundancy check (CRC) is a type of
checksum used primarily in data communications that determines
whether an error has occurred within a large block or stream of
information bytes. The larger the block to be checked, the larger the
checksum must be to provide adequate protection. Checksums and
CRCs are a type of systematic error detection scheme, meaning that the
error-checking bits are appended to the original information byte. The
group of error-checking bits is called a syndrome. The original
information byte is unchanged by the addition of the error-checking
bits.
The word cyclic in cyclic redundancy check refers to the abstract
mathematical theory behind this error control system. Although a
discussion of this theory is beyond the scope of this text, we can
demonstrate how the method works to aid in your understanding of its
power to economically detect transmission errors.
49. Arithmetic Modulo 2
You may be familiar with integer arithmetic taken over a
modulus. Twelve-hour clock arithmetic is a modulo 12 system
that you use every day to tell time. When we add 2 hours to
11:00, we get 1:00. Arithmetic modulo 2 uses two binary
operands with no borrows or carries. The result is likewise
binary and is also a member of the modulus 2 system.
Because of this closure under addition, and the existence of
identity elements, mathematicians say that this modulo 2
system forms an algebraic field.
The addition rules are as follows:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0
50. Example:
Find the sum of 10112 and 1102 modulo 2.
1011
+110
11012(mod 2)
This sum makes sense only in modulo 2.
52. Instruction Sets: Characteristics and
Functions
The operation of the processor is determined by the
instructions it executes, referred to as machine
instructions or computer instructions. The
collection of different instructions that the processor
can execute is referred to as the processor’s
instruction set.
54. Elements of a Machine Instruction Each instruction must contain the information
required by the processor for execution.
The figure above shows the steps involved in
instruction execution and, by implication, defines
the elements of a machine instruction which are:
Operation code: Specifies the operation to be
performed (e.g., ADD, I/O). The operation is
specified by a binary code, known as the operation
code, or opcode.
Source operand reference: The operation may
involve one or more source operands, that is,
operands that are inputs for the operation
55. Elements
Result operand reference: The operation may
produce a result.
•Next instruction reference: This tells the processor
where to fetch the next instruction after the execution
of this instruction is complete
56. The address of the next instruction to be fetched could be either a
real address or a virtual address, depending on the architecture.
Source and result operands can be in one of these areas:
Main or virtual memory: As with next instruction references,
the main or virtual memory address must be supplied.
Processor register: With rare exceptions, a processor contains
one or more registers that may be referenced by machine
instructions. If only one register exists, reference to it may be
implicit. If more than one register exists, then each register is
assigned a unique name or number, and the instruction must
contain the number of the desired register.
Immediate: The value of the operand is contained in a field in
the instruction being executed.
I/O device: The instruction must specify the I/O module and
device for the operation. If memory-mapped I/O is used, this is
just another main or virtual memory address.
57. Instruction Representation
Opcodes are represented by abbreviations, called mnemonics, that
indicate the operation. Common examples include
ADD Add
SUB Subtract
MUL Multiply
DIV Divide
LOAD Load data from memory
STOR Store data to memory
Operands are also represented symbolically. For example, the instruction
ADD R, Y
may mean add the value contained in data location Y to the contents of
register R. In this example, Y refers to the address of a location in
memory, and R refers to a particular register. Note that the operation is
performed on the contents of a location, not on its address.
58. Types of Operands
Machine instructions operate on data which have these
general categories:
Addresses
Numbers
Characters
Logical data
Other common data types are numbers, characters, and
logical data, and some machines define specialized data
types or data structures. For example, there may be
machine operations that operate directly on a list or a
string of characters.
59. Numbers
All machine languages include numeric data types.
Even in nonnumeric data processing, there is a
need for numbers to act as counters, field widths.
The distinction between numbers used in ordinary
mathematics and numbers stored in a computer is
that the latter are limited which is true in two
ways. First, there is a limit to the magnitude of
numbers representable on a machine and second,
in the case of floating-point numbers, a limit to
their precision
60. Numbers
Three types of numerical data are common in
computers:
Binary integer or binary fixed point
Binary floating point
Decimal
61. Intel x86 and ARM Data TypesThe x86 can deal with data types of 8 (byte), 16
(word), 32 (doubleword), 64 (quadword), and 128
(double quadword) bits in length. To allow
maximum flexibility in data structures and
efficient memory utilization, words need not be
aligned at evennumbered addresses; doublewords
need not be aligned at addresses evenly divisible
by 4; and quadwords need not be aligned at
addresses evenly divisible by 8, and so on.
However, when data are accessed across a 32-bit
bus, data transfers take place in units of
doublewords, beginning at addresses divisible by
4.
62. The processor converts the request for misaligned
values into a sequence of requests for the bus
transfer.
The byte, word, doubleword, quadword, and double
quadword are referred to as general data types
Nb: ARM is a RISC design that relies heavily on
register addressing
63. Types of Data and descriptions
General Byte: word (16 bits), doubleword (32 bits), quadword (64 bits),
and double quadword (128 bits) locations with arbitrary binary
contents.
Integer: A signed binary value contained in a byte, word, or
doubleword, using twos complement representation.
Ordinal: An unsigned integer contained in a byte, word, or
doubleword.
Unpacked binary coded decimal (BDC): A representation of a BCD
digit in the range 0 through 9, with one digit in each byte.
Packed BCD : Packed byte representation of two BCD digits; value in
the range 0 to 99.
Near pointer: A 16-bit, 32-bit, or 64-bit effective address that
represents the offset within a segment. Used for all pointers in a
nonsegmented memory and for references within a segment in a
segmented memory.
64. Far pointer : A logical address consisting of a 16-bit
segment selector and an offset of 16, 32, or 64 bits. Far
pointers are used for memory references in a segmented
memory model where the identity of a segment being
accessed must be specified explicitly.
Bit field : A contiguous sequence of bits in which the
position of each bit is considered as an independent unit. A
bit string can begin at any bit position of any byte and can
contain up to 32 bits.
Bit string: A contiguous sequence of bits, containing from
zero to 2^32-1 bits.
Byte string: A contiguous sequence of bytes, words, or
doublewords, containing from zero to 2^32-1 bytes.
Floating point
Packed SIMD (single instruction, multiple data): Packed
64-bit and 128-bit data types
65. Intel x86 data types
The packed SIMD (single-instruction-multiple-data) data
types were introduced to the x86 architecture as part of the
extensions of the instruction set to optimize performance
of multimedia applications which included MMX
(multimedia extensions) and SSE (streaming SIMD
extensions).
The basic concept is that multiple operands are packed into
a single referenced memory item and that these multiple
operands are operated on in parallel.
66. The data types are as follows:
Packed byte and packed byte integer: Bytes packed into
a 64-bit quadword or 128-bit double quadword, interpreted
as a bit field or as an integer
Packed word and packed word integer: 16-bit words
packed into a 64-bit quadword or 128-bit double quadword,
interpreted as a bit field or as an integer
Packed doubleword and packed doubleword integer:
32-bit doublewords packed into a 64-bit quadword or 128-
bit double quadword, interpreted as a bit field or as an
integer.
Packed quadword and packed qaudword integer: Two
64-bit quadwords packed into a 128-bit double quadword,
interpreted as a bit field or as an integer
Packed single-precision floating-point and packed
double-precision floatingpoint: Four 32-bit floating-
point or two 64-bit floating-point values packed into a 128-
bit double quadword
67. Types of OperationsThe number of different opcodes varies widely from
machine to machine. However,the same general
types of operations are found on all machines. A
useful and typical categorization is the following:
Data transfer
Arithmetic
Logical
Conversion
I/O
System control
Transfer of control
68. Some common Arithmetic Operations
and meanings
ADD : Perform the arithmetic sum of two
operands
SUBTRACT : Perform the arithmetic difference of
two operands
MULTIPLY: Perform the product of two operands
DIVIDE: Perform the division of two operands
INCREMENT: Add one to the contents of a
register
DECREMENT: Subtract one from the contents of a
register
69. Some Common Logical Operations and
meanings
AND: Perform the logical ANDing of two operands
OR: Perform the logical ORing of two operands
EXOR: Perform the XORing of two operands
NOT: Perform the complement of an operand
COMPARE: Perform logical comparison of two operands
and set flag accordingly
SHIFT: Perform logical shift (right or left) of the content of
a register
ROTATE: Perform logical shift (right or left) with
wraparound of the content of a register
70. Some Transfer of Control Operations
and meaning
BRANCH-IF-CONDITION: Transfer of control to a
new address if condition is true
JUMP : Unconditional transfer of control
CALL: Transfer of control to a subroutine
RETURN: Transfer of control to the caller routine
71. Examples of Condition Flags
Negative (N): Set to 1 if the result of the most
recent operation is negative, it is 0 otherwise
Zero (Z): Set to 1 if the result of the most recent
operation is 0, it is 0 otherwise
Overflow (V): Set to 1 if the result of the most
recent operation causes an overflow, it is 0
otherwise
Carry (C) : Set to 1 if the most recent operation
results in a carry, it is 0 otherwise
72. ArithmeticMost machines provide the basic arithmetic
operations of add, subtract, multiply, and divide.
These are invariably provided for signed integer
(fixed-point) numbers.
Often they are also provided for floating-point and
packed decimal numbers.
Other possible operations include a variety of single-
operand instructions like:
Absolute: Take the absolute value of the operand.
Negate: Negate the operand.
Increment: Add 1 to the operand.
•Decrement: Subtract 1 from the operand
73. Intel x86 and ARM operation types The x86 provides a complex array of operation types, including a
number of specialized instructions.The intent was to provide tools for
the compiler writer to produce optimized machine language
translation of high-level language programs.
Typical operations fall in the following categories:
Data movement
Arithmetic
Logical
Control transfer
String operations
High level language support
Flag control
Segment register
Protection
Cache management
74. presentation
Mandatory: explain the following operations
Data movement
Arithmetic
Logical
Control transfer
String operations
High level language support
Flag control
Segment register
Protection
Cache management
75. Assembly Language
A CPU can understand and execute machine instructions.
An assembly language program is composed of :
Constants
Expressions
Literals
Reserved Words
Mnemonics
Identifiers
Directives
Instructions
Comments
76. Integer Constants
Integer constants can be written in decimal,
hexadecimal, octal or binary, by adding a radix (or
number base) suffix to the end .
Radix Suffices:
– d decimal (the default)
– h hexadecimal
– q or o octal
– b binary
77. Integer Expressions
An integer expressions is a mathematical
expressions involving integer values and integer
operators.
The expressions must be one that can be stored in
32 bits (or less).
The precedence:
( ) Expressions in Parentheses
+, - Unary Plus and minus
*, /, Mod Multiply, Divide, Modulus
+, - Add, Subtract
78. Real Number Constants
There are two types of real number constants:
– Decimal reals, which contain a sign followed by
a number with decimal fraction and an exponent:
[sign] integer.[integer][exponent]
Examples:
+3.0 -44.2E+05 26.E5
– Encoded reals, which are represented exactly as
they are stored: 3F80000r
79. Character Constants
A character constant is a single character enclosed in
single or double quotation marks.
The assembler converts it to the equivalent value in the
binary code ASCII:
‘A’
“d”
80. String Constants
A string constant is a string of characters
enclosed in single or double quotation marks:
‘ABC’
“x”
“Goodnight, Gracie”
‘4096’
“This isn’t a test”
‘Say “Goodnight, ” Gracie’
81. Reserved words
Reserved words have a special meaning to the
assembler and cannot be used for anything other
than their specified purpose.
They include:
– Instruction mnemonics
– Directives
– Operators in constant expressions
– Predefined symbols such as @data which return
constant values at assembly time.
82. Identifiers
Identifiers are names that the programmer
chooses to represent variables, constants,
procedures or labels.
Identifiers:
– can have 1 to 247 characters
– are not case-sensitive
– begin with a letter , underscore, @ or $ and can
also contain digits after the first character.
– cannot be reserved words
83. Directives
Directives are commands for the assembler, telling it how
to assemble the program.
Directives have a syntax similar to assembly language but
do not correspond to Intel processor instructions.
Directives are also case-insensitive:
Examples
.data
.code
name PROC
84. Instructions
An instruction in Assembly language consists of a
name (or label), an instruction mnemonic,
operands and a comment
The general form is:
[name] [mnemonic] [operands] [; comment]
Statements are free-form; i.e, they can be written in
any column with any number of spaces between in
each operand as long as they are on one line and do
not pass column 128.
85. Labels
Labels are identifiers that serve as place markers
within the program for either code or data.
These are replaced in the machine-language
version of the program with numeric addresses.
We use them because they are more readable:
mov ax, [9020]
vs.
mov ax, MyVariable
86. Instruction Mnemonics
Instruction mnemonics are abbreviations that
identify the operation carried out by the
instruction:
mov - move a value to another location
add - add two values
sub - subtract a value from another
jmp - jump to a new location in the program
mul - multiply two values
call - call a procedure