The document discusses the user-level view of operating systems and how they manage resources for program execution through abstractions like files, processes, and threads, allowing for sequential and concurrent computation, with processes providing separate address spaces while threads share resources within a process. Key system calls like fork(), join(), and quit() are used to create and manage processes, while open(), read(), write(), and close() manipulate file resources.
Unix uses processes to run programs and operating system functions. There are two types of processes - system processes which execute OS code and user processes which execute user programs. Processes can be in different states like running, ready, blocked etc. The kernel manages processes using data structures like process table entry and user area. Important process management operations include forking to create new processes, wait/exit for process termination, and signals for inter-process communication.
The document discusses the architecture and internals of Unix operating systems. It describes the high-level architecture with the hardware at the bottom providing basic services, the operating system kernel interacting directly with hardware and providing common services to user programs, and user programs being isolated from hardware. It also discusses topics like multiprocessing, multi-core processors, operating system services like process management and scheduling, and the file subsystem as a key part of the Unix kernel architecture.
Quontra Solutions offers Job oriented Linux online training with updated technologies. For more info about our Linux online training contact us directly. We are providing Linux online training to all students throughout worldwide by real time faculties. Our Linux training strengthens your skills and knowledge which will helps you to gain a competitive advantage in starting your career. Outclasses will help you to gain knowledge on real time scenario. It will be most use full to boost up your career.
Our training sessions are designed in such a way that all the students can be convenient with the training schedules and course timings.
Along with Training, we also conduct several mock interviews along with Job Placement Assistance. Attend Free Demo before joining the class.
Our Features:
• Real world projects to get practical based experience
• Online tests to explore the resource learning
• Experienced certified trainers as instructors
• One to one personalized training with desktop access
• Case studies and state of art library to access study material
• Resume build assistance to win in interviews
Contact us:
Simson Andrew
Email: info@quontrasolutions.com
web: www.quontrasolutions.com
The document discusses various topics related to Unix system administration including device files, block and character devices, major and minor numbers, the Unix file system structure, partitions, file systems, inodes, mounting and unmounting file systems, disk space usage commands, compression tools, printing files, file system checking, user management commands, the role of init in startup and shutdown, run levels, and backup tools. Some key points include:
1. Device files allow all physical devices like tapes, printers, disks to be accessed as normal files.
2. Block and character devices are distinguished based on whether access is via blocks (block devices) or directly (character devices).
3. Major and minor numbers help the
The document provides an overview of the Linux kernel architecture. It discusses that the kernel includes modules/subsystems that provide operating system functions and forms the core of the OS. It describes the kernel's user space and kernel space, with user processes running in user space and kernel processes running in kernel space. System calls are used to pass arguments between the spaces. The document also summarizes several key kernel functions, including the file system, process management, device drivers, memory management, and networking.
The document provides an overview of the Ubuntu operating system. It discusses Ubuntu's history as a Debian-based Linux distribution first released in 2004. It covers Ubuntu's design principles including its use of the Linux kernel for process management, memory management, and file systems. It also addresses security topics like hacking threats and strategies for hardening Ubuntu systems. Basic commands and utilities included in Ubuntu are outlined.
The document discusses the history and characteristics of UNIX operating systems. It describes how UNIX was developed in the 1960s and has since evolved into many different versions. Some key aspects of UNIX include its multi-user and multi-tasking capabilities, large number of free and commercial applications, and importance in internet development. The document also covers UNIX system calls, memory management, process management, and file systems.
The document provides an overview of the UNIX operating system. It discusses the components of a computer system including hardware, operating system, utilities, and application programs. It then defines the operating system as a program that acts as an interface between the user and computer hardware. The document outlines the goals of an operating system and provides a brief history of the development of UNIX from Multics. It also describes some key concepts of UNIX including the kernel, shell, files, directories, and multi-user capabilities.
Unix uses processes to run programs and operating system functions. There are two types of processes - system processes which execute OS code and user processes which execute user programs. Processes can be in different states like running, ready, blocked etc. The kernel manages processes using data structures like process table entry and user area. Important process management operations include forking to create new processes, wait/exit for process termination, and signals for inter-process communication.
The document discusses the architecture and internals of Unix operating systems. It describes the high-level architecture with the hardware at the bottom providing basic services, the operating system kernel interacting directly with hardware and providing common services to user programs, and user programs being isolated from hardware. It also discusses topics like multiprocessing, multi-core processors, operating system services like process management and scheduling, and the file subsystem as a key part of the Unix kernel architecture.
Quontra Solutions offers Job oriented Linux online training with updated technologies. For more info about our Linux online training contact us directly. We are providing Linux online training to all students throughout worldwide by real time faculties. Our Linux training strengthens your skills and knowledge which will helps you to gain a competitive advantage in starting your career. Outclasses will help you to gain knowledge on real time scenario. It will be most use full to boost up your career.
Our training sessions are designed in such a way that all the students can be convenient with the training schedules and course timings.
Along with Training, we also conduct several mock interviews along with Job Placement Assistance. Attend Free Demo before joining the class.
Our Features:
• Real world projects to get practical based experience
• Online tests to explore the resource learning
• Experienced certified trainers as instructors
• One to one personalized training with desktop access
• Case studies and state of art library to access study material
• Resume build assistance to win in interviews
Contact us:
Simson Andrew
Email: info@quontrasolutions.com
web: www.quontrasolutions.com
The document discusses various topics related to Unix system administration including device files, block and character devices, major and minor numbers, the Unix file system structure, partitions, file systems, inodes, mounting and unmounting file systems, disk space usage commands, compression tools, printing files, file system checking, user management commands, the role of init in startup and shutdown, run levels, and backup tools. Some key points include:
1. Device files allow all physical devices like tapes, printers, disks to be accessed as normal files.
2. Block and character devices are distinguished based on whether access is via blocks (block devices) or directly (character devices).
3. Major and minor numbers help the
The document provides an overview of the Linux kernel architecture. It discusses that the kernel includes modules/subsystems that provide operating system functions and forms the core of the OS. It describes the kernel's user space and kernel space, with user processes running in user space and kernel processes running in kernel space. System calls are used to pass arguments between the spaces. The document also summarizes several key kernel functions, including the file system, process management, device drivers, memory management, and networking.
The document provides an overview of the Ubuntu operating system. It discusses Ubuntu's history as a Debian-based Linux distribution first released in 2004. It covers Ubuntu's design principles including its use of the Linux kernel for process management, memory management, and file systems. It also addresses security topics like hacking threats and strategies for hardening Ubuntu systems. Basic commands and utilities included in Ubuntu are outlined.
The document discusses the history and characteristics of UNIX operating systems. It describes how UNIX was developed in the 1960s and has since evolved into many different versions. Some key aspects of UNIX include its multi-user and multi-tasking capabilities, large number of free and commercial applications, and importance in internet development. The document also covers UNIX system calls, memory management, process management, and file systems.
The document provides an overview of the UNIX operating system. It discusses the components of a computer system including hardware, operating system, utilities, and application programs. It then defines the operating system as a program that acts as an interface between the user and computer hardware. The document outlines the goals of an operating system and provides a brief history of the development of UNIX from Multics. It also describes some key concepts of UNIX including the kernel, shell, files, directories, and multi-user capabilities.
The document provides an overview of the Linux kernel architecture and processes. It discusses key kernel concepts like the monolithic kernel design, system calls, loadable modules, virtual memory, and preemptive multitasking. It also covers kernel functions, layers, and context switching between processes. The CPU scheduler, multi-threading, inter-process communication techniques, and tunable kernel parameters are summarized as well.
This document provides an overview of the CSC 539 Operating Systems Structure and Design course. It discusses influential early operating systems like Atlas, CTSS, MULTICS, OS/360, UNIX, Alto and Mach. It then focuses on case studies of the Linux and Windows XP operating systems, describing their histories, design principles, process management, memory management, virtual memory, file systems and more.
Unix was created in 1969 by Ken Thompson at Bell Labs to allow multiple users to access a computer simultaneously. It features a multi-user design, hierarchical file system, and shell interface. The kernel handles memory management, process scheduling, and device interactions to enable these features. Common Unix commands like cat, ls, cp and rm allow users to work with files and directories from the shell. File permissions and ownership are managed through inodes to control access across users.
The document provides an overview of the Linux architecture including:
1) It discusses the history of Linux from its origins as a free UNIX-like operating system developed by Linus Torvalds to the over 18 million lines of code it contains today.
2) It describes the key components of the Linux system architecture including the hardware layer, kernel, shell, and utilities. The kernel acts as the core of the OS and interacts with hardware to perform low-level services.
3) It outlines several important kernel functions including file system management, process management and scheduling, memory management, and device drivers which allow communication with I/O devices through device files.
Linux kernel Architecture and PropertiesSaadi Rahman
This document discusses the key components and architecture of the Linux kernel. It begins by defining the kernel as the central module of an operating system that loads first and remains in memory, providing essential services. It then describes the major subsystems of Linux, including process management, memory management, virtual file systems, network stacks, and device drivers. It concludes that the modular design of the Linux kernel has supported its growth and success through independent and extensible development of these subsystems.
This document provides a high-level overview of the boot process, components, and initialization of an Ubuntu system. It describes how the BIOS loads the bootloader from the hard drive master boot record, which then loads GRUB. GRUB loads the Linux kernel, which initializes in privileged mode. The kernel loads init as the first userland process to start essential services like the display manager, which starts the X window server and allows user authentication and session startup.
This document provides an overview of Linux basics including:
- A brief history of Linux and how it originated from UNIX.
- An overview of Linux components including the kernel, userspace programs, shells, and how they interact.
- Instructions for installing Linux distributions like Red Hat, Debian, and SuSE.
- How to use basic Linux commands and work with files, directories, and processes.
- Where to find Linux documentation using commands like man and info.
It serves as an introductory guide to getting started with the Linux operating system.
The document summarizes the architecture of the Linux operating system. It discusses the main components of Linux including the kernel, process management, memory management, file systems, device drivers, network stack, and architecture-dependent code. The kernel is at the core and acts as a resource manager. It uses a monolithic design. Process and memory management are handled via data structures like task_struct and buddy allocation. Virtual memory is implemented using page tables. File systems organize files in a hierarchy with inodes. Device drivers interface with hardware. The network stack follows a layered model. Architecture code is separated by subdirectory.
1. The document provides an overview of the history and development of UNIX/Linux operating systems. It originated from projects in the 1960s and was further developed by Ken Thompson, Dennis Ritchie and others.
2. UNIX became popular due to its modular design, use of a hierarchical file system, treating all system resources as files, and ability to combine simple programs together.
3. The basic architecture of UNIX involves application programs interacting with the kernel via system calls to perform tasks like process and memory management.
MS-DOS was one of the most successful operating systems and was the first widely used operating system for IBM PCs and clones. It originated as QDOS, an operating system written in six weeks for the Intel 8086 CPU. Microsoft acquired QDOS and renamed it MS-DOS, which it licensed to IBM for use on the original IBM PC. MS-DOS went on to fuel Microsoft's growth as the dominant software company. While feature-limited compared to UNIX, MS-DOS remained popular for years until the rise of graphical user interfaces led to its replacement by Windows 95.
tybsc it sem 5 Linux administration notes of unit 1,2,3,4,5,6 version 3WE-IT TUTORIALS
Introduction: Introduction to UNIX, Linux, GNU and Linux distributions Duties of the System Administrator, The Linux System Administrator, Installing and Configuring Servers, Installing and Configuring Application Software,
Creating and Maintaining User Accounts, Backing Up and Restoring Files, Monitoring and Tuning Performance, Configuring a Secure System, Using Tools
to Monitor Security Booting and shutting down: Boot loaders-GRUB, LILO, Bootstrapping, Init
process, rc scripts, Enabling and disabling services.
The File System: Understanding the File System Structure, Working with Linux- Supported File Systems, Memory and Virtual
System Configuration Files: System wide Shell Configuration Scripts, System Environmental Settings, Network Configuration Files, Managing the init Scripts,
Configuration Tool, Editing Your Network Configuration
TCP/IP Networking: Understanding Network Classes, Setting Up a Network nterface Card (NIC), Understanding Subnetting, Working with Gateways and Routers, Configuring Dynamic Host Configuration Protocol, Configuring the Network Using the Network
The Network File System: NFS Overview, Planning an NFS Installation, Configuring an NFS Server, Configuring an NFS Client, Using Automount Services, Examining NFS Security
Connecting to Microsoft Networks: Installing Samba, Configuring the Samba Server, Creating Samba Users 3, Starting the Samba Server, Connecting to a Samba
Client, Connecting from a Windows PC to the Samba Server Additional Network Services: Configuring a Time Server, Providing a Caching Proxy Server
Internet Services: Secure Services, SSH, scp, sftp Less Secure Services (Telnet ,FTP, sync,rsh ,rlogin,finger,talk and ntalk, Linux Machine as a Server, Configuring
the xinetd Server, Comparing xinetd and Standalone, Configuring Linux Firewall Packages, Domain Name System: Understanding DNS, Understanding Types of Domain Servers, Examining Server Configuration Files, Configuring a Caching DNS Server, Configuring a Secondary Master DNS Server, Configuring a Primary
Master Server, Checking Configuration
Configuring Mail Services: Tracing the Email Delivery Process, Mail User Agent (MUA), Introducing SMTP, Configuring Sendmail, Using the Postfix Mail Server,
Serving Email with POP3 and IMAP, Maintaining Email Security Configuring FTP Services: Introducing vsftpd, Configuring vsftpd, Advanced FTP Server Configuration, Using SFTP
Configuring a Web Server: Introducing Apache, Configuring Apache, Implementing SSI, Enabling CGI, Enabling PHP, Creating a Secure Server with SSL System Administration: Administering Users and Groups Installing and Upgrading Software Packages
This document discusses the Unix operating system architecture including the boot process, shutdown process, process management, memory management, and networking. It describes how the boot program loads the kernel which then initializes hardware, sets up RAM tables for processes, and creates the init process. Key process management topics covered include process hierarchy, creation, states, and signaling.
This document discusses processes in Linux. It defines a process as a running instance of a program in memory that is allocated space for variables and instructions. All processes are descended from the systemd process. It describes process states like running, sleeping, stopped, and zombie. It also discusses process monitoring and management tools like top, ps, kill, and setting process priorities with nice and renice. Examples are provided on using ps to view specific processes by user, name, ID, parent ID, and customize the output.
The document discusses the architecture of the Linux kernel. It describes the user space and kernel space components. In user space are the user applications, glibc library, and each process's virtual address space. In kernel space are the system call interface, architecture-independent kernel code, and architecture-dependent code. It then covers several kernel subsystems like process management, memory management, virtual file system, network stack, and device drivers.
This Project Report of Web Server contains the description of Linux Operating System Administration. This is based on Redhat Linux 6. In this, the topics covered are System Administration, Server Administration, Scheduling, Web Server, Samba Server and FTP Server. This also contains the information related to configuration file like passwd. This presentation was prepared as a record of Industrial training Project.
The document provides an overview of the key components of the Linux operating system, including:
1) The Linux kernel, which acts as a resource manager for processes, memory, and hardware devices.
2) Process and memory management systems that control how processes are allocated and memory is allocated and freed.
3) The file system which organizes how files are stored and accessed.
4) Device drivers that allow the operating system to interface with hardware.
5) The network stack which handles network protocols and connections.
6) Architecture-dependent code that provides hardware-specific implementations of core functions.
The document provides an overview of the history and components of the Linux operating system. It discusses how Linux originated as a small kernel developed by Linus Torvalds in 1991 and has since evolved through collaborations. The core components of Linux include the kernel, system libraries, system utilities, and kernel modules. It also describes key aspects of Linux such as process management, scheduling, memory management, and file systems.
File systems provide an organized way to store and access data on storage devices like hard drives. The Linux file system hierarchy standard defines a common structure across Linux distributions with directories like /bin, /etc, /home, /usr, and /var. Common Linux file system types include ext2, ext3, ext4 for disks, initramfs for RAM, and JFFS2 for flash storage. File systems can also be distributed across a network using NFS or optimized for specific purposes like squashfs for read-only files. Partitions divide available storage space to better manage files, users, and data security.
1. The document discusses the basic functions of an operating system including device management, process and resource management, memory management, and file management.
2. It then covers implementation issues such as processor modes, kernels, and requesting OS services to provide abstraction while balancing overhead.
3. The last section discusses contemporary OS kernels like UNIX and Windows NT which implement techniques like processor modes and kernels.
The document summarizes key aspects of process management in operating systems. It discusses the process manager and its role in managing processes, threads, and resources. It describes process descriptors that contain information about processes and threads. Process states like running, blocked, and ready are also summarized. The document outlines reusable and consumable resources and how resource managers allocate and track resources. Process hierarchies and generalizing process management policies are briefly covered at the end.
The document provides an overview of the Unix operating system, including its history, design principles, and key components. It describes how Unix was developed at Bell Labs in the 1960s and later influenced by BSD at UC Berkeley. The core elements discussed include the process model, file system, I/O, and standard user interface through shells and commands.
The document provides an overview of the Linux kernel architecture and processes. It discusses key kernel concepts like the monolithic kernel design, system calls, loadable modules, virtual memory, and preemptive multitasking. It also covers kernel functions, layers, and context switching between processes. The CPU scheduler, multi-threading, inter-process communication techniques, and tunable kernel parameters are summarized as well.
This document provides an overview of the CSC 539 Operating Systems Structure and Design course. It discusses influential early operating systems like Atlas, CTSS, MULTICS, OS/360, UNIX, Alto and Mach. It then focuses on case studies of the Linux and Windows XP operating systems, describing their histories, design principles, process management, memory management, virtual memory, file systems and more.
Unix was created in 1969 by Ken Thompson at Bell Labs to allow multiple users to access a computer simultaneously. It features a multi-user design, hierarchical file system, and shell interface. The kernel handles memory management, process scheduling, and device interactions to enable these features. Common Unix commands like cat, ls, cp and rm allow users to work with files and directories from the shell. File permissions and ownership are managed through inodes to control access across users.
The document provides an overview of the Linux architecture including:
1) It discusses the history of Linux from its origins as a free UNIX-like operating system developed by Linus Torvalds to the over 18 million lines of code it contains today.
2) It describes the key components of the Linux system architecture including the hardware layer, kernel, shell, and utilities. The kernel acts as the core of the OS and interacts with hardware to perform low-level services.
3) It outlines several important kernel functions including file system management, process management and scheduling, memory management, and device drivers which allow communication with I/O devices through device files.
Linux kernel Architecture and PropertiesSaadi Rahman
This document discusses the key components and architecture of the Linux kernel. It begins by defining the kernel as the central module of an operating system that loads first and remains in memory, providing essential services. It then describes the major subsystems of Linux, including process management, memory management, virtual file systems, network stacks, and device drivers. It concludes that the modular design of the Linux kernel has supported its growth and success through independent and extensible development of these subsystems.
This document provides a high-level overview of the boot process, components, and initialization of an Ubuntu system. It describes how the BIOS loads the bootloader from the hard drive master boot record, which then loads GRUB. GRUB loads the Linux kernel, which initializes in privileged mode. The kernel loads init as the first userland process to start essential services like the display manager, which starts the X window server and allows user authentication and session startup.
This document provides an overview of Linux basics including:
- A brief history of Linux and how it originated from UNIX.
- An overview of Linux components including the kernel, userspace programs, shells, and how they interact.
- Instructions for installing Linux distributions like Red Hat, Debian, and SuSE.
- How to use basic Linux commands and work with files, directories, and processes.
- Where to find Linux documentation using commands like man and info.
It serves as an introductory guide to getting started with the Linux operating system.
The document summarizes the architecture of the Linux operating system. It discusses the main components of Linux including the kernel, process management, memory management, file systems, device drivers, network stack, and architecture-dependent code. The kernel is at the core and acts as a resource manager. It uses a monolithic design. Process and memory management are handled via data structures like task_struct and buddy allocation. Virtual memory is implemented using page tables. File systems organize files in a hierarchy with inodes. Device drivers interface with hardware. The network stack follows a layered model. Architecture code is separated by subdirectory.
1. The document provides an overview of the history and development of UNIX/Linux operating systems. It originated from projects in the 1960s and was further developed by Ken Thompson, Dennis Ritchie and others.
2. UNIX became popular due to its modular design, use of a hierarchical file system, treating all system resources as files, and ability to combine simple programs together.
3. The basic architecture of UNIX involves application programs interacting with the kernel via system calls to perform tasks like process and memory management.
MS-DOS was one of the most successful operating systems and was the first widely used operating system for IBM PCs and clones. It originated as QDOS, an operating system written in six weeks for the Intel 8086 CPU. Microsoft acquired QDOS and renamed it MS-DOS, which it licensed to IBM for use on the original IBM PC. MS-DOS went on to fuel Microsoft's growth as the dominant software company. While feature-limited compared to UNIX, MS-DOS remained popular for years until the rise of graphical user interfaces led to its replacement by Windows 95.
tybsc it sem 5 Linux administration notes of unit 1,2,3,4,5,6 version 3WE-IT TUTORIALS
Introduction: Introduction to UNIX, Linux, GNU and Linux distributions Duties of the System Administrator, The Linux System Administrator, Installing and Configuring Servers, Installing and Configuring Application Software,
Creating and Maintaining User Accounts, Backing Up and Restoring Files, Monitoring and Tuning Performance, Configuring a Secure System, Using Tools
to Monitor Security Booting and shutting down: Boot loaders-GRUB, LILO, Bootstrapping, Init
process, rc scripts, Enabling and disabling services.
The File System: Understanding the File System Structure, Working with Linux- Supported File Systems, Memory and Virtual
System Configuration Files: System wide Shell Configuration Scripts, System Environmental Settings, Network Configuration Files, Managing the init Scripts,
Configuration Tool, Editing Your Network Configuration
TCP/IP Networking: Understanding Network Classes, Setting Up a Network nterface Card (NIC), Understanding Subnetting, Working with Gateways and Routers, Configuring Dynamic Host Configuration Protocol, Configuring the Network Using the Network
The Network File System: NFS Overview, Planning an NFS Installation, Configuring an NFS Server, Configuring an NFS Client, Using Automount Services, Examining NFS Security
Connecting to Microsoft Networks: Installing Samba, Configuring the Samba Server, Creating Samba Users 3, Starting the Samba Server, Connecting to a Samba
Client, Connecting from a Windows PC to the Samba Server Additional Network Services: Configuring a Time Server, Providing a Caching Proxy Server
Internet Services: Secure Services, SSH, scp, sftp Less Secure Services (Telnet ,FTP, sync,rsh ,rlogin,finger,talk and ntalk, Linux Machine as a Server, Configuring
the xinetd Server, Comparing xinetd and Standalone, Configuring Linux Firewall Packages, Domain Name System: Understanding DNS, Understanding Types of Domain Servers, Examining Server Configuration Files, Configuring a Caching DNS Server, Configuring a Secondary Master DNS Server, Configuring a Primary
Master Server, Checking Configuration
Configuring Mail Services: Tracing the Email Delivery Process, Mail User Agent (MUA), Introducing SMTP, Configuring Sendmail, Using the Postfix Mail Server,
Serving Email with POP3 and IMAP, Maintaining Email Security Configuring FTP Services: Introducing vsftpd, Configuring vsftpd, Advanced FTP Server Configuration, Using SFTP
Configuring a Web Server: Introducing Apache, Configuring Apache, Implementing SSI, Enabling CGI, Enabling PHP, Creating a Secure Server with SSL System Administration: Administering Users and Groups Installing and Upgrading Software Packages
This document discusses the Unix operating system architecture including the boot process, shutdown process, process management, memory management, and networking. It describes how the boot program loads the kernel which then initializes hardware, sets up RAM tables for processes, and creates the init process. Key process management topics covered include process hierarchy, creation, states, and signaling.
This document discusses processes in Linux. It defines a process as a running instance of a program in memory that is allocated space for variables and instructions. All processes are descended from the systemd process. It describes process states like running, sleeping, stopped, and zombie. It also discusses process monitoring and management tools like top, ps, kill, and setting process priorities with nice and renice. Examples are provided on using ps to view specific processes by user, name, ID, parent ID, and customize the output.
The document discusses the architecture of the Linux kernel. It describes the user space and kernel space components. In user space are the user applications, glibc library, and each process's virtual address space. In kernel space are the system call interface, architecture-independent kernel code, and architecture-dependent code. It then covers several kernel subsystems like process management, memory management, virtual file system, network stack, and device drivers.
This Project Report of Web Server contains the description of Linux Operating System Administration. This is based on Redhat Linux 6. In this, the topics covered are System Administration, Server Administration, Scheduling, Web Server, Samba Server and FTP Server. This also contains the information related to configuration file like passwd. This presentation was prepared as a record of Industrial training Project.
The document provides an overview of the key components of the Linux operating system, including:
1) The Linux kernel, which acts as a resource manager for processes, memory, and hardware devices.
2) Process and memory management systems that control how processes are allocated and memory is allocated and freed.
3) The file system which organizes how files are stored and accessed.
4) Device drivers that allow the operating system to interface with hardware.
5) The network stack which handles network protocols and connections.
6) Architecture-dependent code that provides hardware-specific implementations of core functions.
The document provides an overview of the history and components of the Linux operating system. It discusses how Linux originated as a small kernel developed by Linus Torvalds in 1991 and has since evolved through collaborations. The core components of Linux include the kernel, system libraries, system utilities, and kernel modules. It also describes key aspects of Linux such as process management, scheduling, memory management, and file systems.
File systems provide an organized way to store and access data on storage devices like hard drives. The Linux file system hierarchy standard defines a common structure across Linux distributions with directories like /bin, /etc, /home, /usr, and /var. Common Linux file system types include ext2, ext3, ext4 for disks, initramfs for RAM, and JFFS2 for flash storage. File systems can also be distributed across a network using NFS or optimized for specific purposes like squashfs for read-only files. Partitions divide available storage space to better manage files, users, and data security.
1. The document discusses the basic functions of an operating system including device management, process and resource management, memory management, and file management.
2. It then covers implementation issues such as processor modes, kernels, and requesting OS services to provide abstraction while balancing overhead.
3. The last section discusses contemporary OS kernels like UNIX and Windows NT which implement techniques like processor modes and kernels.
The document summarizes key aspects of process management in operating systems. It discusses the process manager and its role in managing processes, threads, and resources. It describes process descriptors that contain information about processes and threads. Process states like running, blocked, and ready are also summarized. The document outlines reusable and consumable resources and how resource managers allocate and track resources. Process hierarchies and generalizing process management policies are briefly covered at the end.
The document provides an overview of the Unix operating system, including its history, design principles, and key components. It describes how Unix was developed at Bell Labs in the 1960s and later influenced by BSD at UC Berkeley. The core elements discussed include the process model, file system, I/O, and standard user interface through shells and commands.
This document provides an overview and summary of key concepts related to file management and low-level file systems. It discusses the structure of hard disks and how they are organized into blocks, tracks, and cylinders. It describes low-level file systems as implementing byte-stream files and stream-block translation. Common block management strategies for organizing file data blocks on storage devices include contiguous allocation, linked lists, and indexed allocation. The document also summarizes key file system calls like open, read, write, and close used in low-level file systems.
This silde is all about how to install or how to work operating systems on computers ..
all slides is about operating systems. .
how much types of OS is available on the computers ..
totally develop or invent by Mayank Thanki ( www.gujrattinfo.com )
This document provides an overview of the UNIX operating system. It discusses the key components of a computer system including the hardware, operating system, utilities, and application programs. It then describes the goals and functions of an operating system. The rest of the document discusses the history and development of UNIX, its components like the kernel and shell, commands, files and directories, and features such as multi-user capability, security, and memory management.
The document contains information about an operating systems lecture for the course code CS-54 including the topics to be covered such as the definition of an operating system, its functions and structure, the evolution of operating systems from batch processing to time sharing systems, and the types of operating systems including single-user and multi-user systems. It also provides contact information for the professor giving the lecture.
Introduction to Unix operating system Chapter 1-PPT Mrs.Sowmya JyothiSowmya Jyothi
Unix is a multitasking, multiuser operating system developed in 1969 at Bell Labs. It allows multiple users to use a computer simultaneously and users can run multiple programs at once. There are several Unix variants like Solaris, AIX, and Linux. Unix was originally written for the PDP-7 computer in C programming language, making it portable. It uses a hierarchical file system and treats all resources as files with permissions. Processes run programs and the shell interprets commands to run programs or interact with the kernel for system calls. Everything in Unix is either a file or a process.
The document discusses an introduction to operating systems. It defines an operating system as software that enables computer programs to run by managing hardware resources. It describes the evolution of operating systems from batch processing to time-sharing systems. It outlines the main functions of operating systems like managing memory, controlling I/O devices, and facilitating file storage. It also differentiates between single-user and multi-user operating systems.
Threads allow concurrency within a process by separating the execution state (program counter, registers, stack) from the process (address space, resources). This allows a single process to have multiple execution streams, sharing data through the shared address space. Key benefits are improved responsiveness, easy resource sharing between threads, and ability to utilize multiple cores. Threads can be implemented in the user space or kernel space.
Threads allow concurrency within a process by separating the execution state (program counter, registers, stack) from the process. This allows a process to have multiple execution streams (threads) that can run independently while sharing the process's resources like memory. Key benefits of threads include improved responsiveness, easy resource sharing between threads, and better utilization of multiprocessor systems.
Linux and Java - Understanding and TroubleshootingJérôme Kehrli
Linux is an open-source operating system that powers many devices from supercomputers to smartphones. It uses a kernel developed by Linus Torvalds and combines with software from the GNU project to form a complete operating system. The Java Virtual Machine (JVM) allows Java programs to run on different platforms by executing Java bytecode. It uses just-in-time compilation to convert bytecode to native machine code. Both Linux and the JVM use memory management techniques like virtual memory and garbage collection to support multi-tasking of processes and applications.
This document discusses the key components of an operating system structure, including process management, memory management, file management, I/O management, and more. It explains how these components work together through system calls and how the operating system is tailored for different machines. Finally, it describes how a virtual machine allows multiple operating systems to run simultaneously on the same physical machine by virtualizing system resources.
This document discusses operating systems and their functions. It defines operating systems as software that controls the overall operation of a computer by managing hardware resources, providing security, and interfacing with applications. The key functions of an operating system are described as managing hardware, security, system interfaces, and application interfaces. A history of operating systems is also provided, from early batch processing to modern time-sharing and multitasking systems.
This document provides information about a course on Shell Programming and Scripting Languages. It discusses:
- The course objectives which are to explain UNIX commands, implement shell scripts using Bash, and learn Python scripting.
- The course outcomes which are to understand UNIX commands and utilities, write and execute shell scripts, handle files and processes, and learn Python programming and web application design.
- Prerequisites of DOS commands and C programming.
- An overview of UNIX including the file system, vi editor, and security permissions.
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.
UNIX Internals - UNIT-I, General Overview of the system, General Overview of the UNIX system, General Overview of the system in UNIX,General Overview of the system of UNIX
This document provides an overview of operating system concepts including:
- Operating systems act as an intermediary between the user and computer hardware. They execute programs, allocate resources, and provide interfaces.
- Key components include processes, memory management, CPU scheduling, I/O management, and file systems.
- Operating systems provide services through system calls and programs that execute programs, manage files and devices, perform resource allocation, and more.
- Design considerations involve separating policies from mechanisms, specifying goals, and implementing in an efficient manner across different hardware.
This chapter discusses operating system structures and services. It describes how operating systems provide interfaces for users and processes to access system resources through system calls and APIs. Operating systems are structured in various ways, including layered architectures and microkernels. Key system programs and services include file management, program loading, and debugging tools. Virtual machines allow multiple isolated operating systems to run concurrently on the same hardware. The chapter also covers how operating systems are installed, configured, debugged, and how they initialize and boot up on system startup.
The document discusses the key features and functions of operating systems. It describes how operating systems allocate resources, manage devices and memory, and allow multiple programs to run simultaneously. Examples are given of some popular operating systems for microcomputers, minicomputers and mainframes. The functions of an operating system include input/output management, memory management, file management, and human-computer interfacing. Popular modern operating systems like Windows, Mac OS, Linux, and UNIX are also overviewed.
This document discusses BOOTP and DHCP protocols. It provides objectives that will be covered, including the types of information required by systems on boot-up and how BOOTP and DHCP operate. BOOTP provides IP addresses and other network configuration details, while DHCP provides static and dynamic address allocation manually or automatically. The document includes figures illustrating operations, packet formats, and state diagrams for both protocols.
This document discusses ARP and RARP protocols. ARP associates IP addresses with physical addresses to allow communication on a LAN. RARP performs the inverse, associating physical addresses with IP addresses. The document includes objectives, figures illustrating ARP and RARP operation and positioning in the TCP/IP stack, examples of ARP cache usage, and details on ARP and RARP packet formats and processing. It aims to explain the need, components, and interactions of the ARP and RARP protocols.
This document discusses the User Datagram Protocol (UDP) which provides a connectionless mode of communication between applications on hosts in an IP network. It describes the format of UDP packets, how UDP checksums are calculated, and UDP's operation including encapsulation, queuing, and demultiplexing. Examples are provided to illustrate how a UDP control block table and queues are used to handle incoming and outgoing UDP packets. The document also discusses when UDP is an appropriate protocol to use compared to TCP.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive functioning. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms.
Julie Miller is evaluating an independent project for cash flows of $10,000, $12,000, $15,000, $10,000 and $7,000 over 5 years with an initial cash outlay of $40,000. She will use the payback period, internal rate of return, net present value, and profitability index to evaluate the project. Based on the company's criteria, the project is rejected as it does not meet the payback, IRR, NPV or profitability index requirements.
This document summarizes a presentation on spyware and Trojan horses given on February 12, 2004. The presentation covered definitions of spyware and Trojan horses, examples of common spyware programs, how spyware and Trojans are installed secretly on computers, their effects, and demonstrations of how specific Trojans like Back Orifice operate. It also discussed defenses against spyware and Trojans, including spyware removal tools, firewalls, and making users more aware of the risks. The presentation concluded by discussing the security implications and proposing legislative and technical solutions.
This document discusses pointers in C++. It begins by defining pointers as variables that hold the memory addresses of other variables and explaining that pointers have types corresponding to the types of variables they point to. It then covers initializing and dereferencing pointers, constant pointers, pointer arithmetic, pointers and arrays, using pointers as function arguments, and memory management using pointers with the new and delete operators.
The document provides an overview of peer-to-peer networking, describing how peers directly communicate and share resources in contrast to the client-server model. It discusses various P2P applications and research areas, including content sharing challenges, approaches to group management and data placement, and measurement studies analyzing user behavior on networks like Gnutella. The document also summarizes several structured P2P networks and routing techniques like Chord, CAN, and Tapestry/Pastry.
Overview of current communications systemsMohd Arif
The document provides an overview of current communications systems, including the growth and evolution of cellular technologies from 1G to 3G. It summarizes the key 2G technologies like GSM, CDMA, and TDMA, as well as 2.5G and 3G standards that support higher data rates. It also discusses emerging broadband wireless services for local and personal area networks using technologies like Wi-Fi, HIPERLAN, and Bluetooth.
This document provides an overview of system software topics including operating systems, compilers, assemblers, linkers, loaders, debuggers, editors and more. It discusses the design and implementation of these programs and how they support the operation of a computer. Key points covered include the roles of assemblers in translating assembly code to object code, linkers and loaders in combining object files and libraries and preparing programs for execution, and compilers in translating high-level languages to machine-readable object code. The document also examines machine architectures like SIC/XE and differences between CISC and RISC designs.
The document discusses establishing objectives and budgeting for promotional programs. It emphasizes that objectives should be specific, measurable, attainable, realistic and time-bound. Marketing objectives aim to achieve goals like sales and market share, while communication objectives are more narrow and focus on delivering messages to target audiences. Budgeting can be done through top-down or bottom-up approaches. Top-down uses a percentage of sales or competitive parity to set budgets, while bottom-up budgets activities to achieve predefined objectives. Marginal analysis is used to determine optimal spending by increasing, holding, or decreasing expenditures based on incremental returns.
Network management involves controlling complex data networks to maximize efficiency and ensure data transmission. It aims to help with network complexity and transparency for users. The key aspects of network management include fault, configuration, security, performance, and accounting management. Network management standards and protocols like SNMP and CMIP allow for monitoring and configuration of network devices. Network management platforms provide the software and tools to integrate and manage different network components from a centralized location.
The document discusses underlying technologies for computer networks including transmission media, local area networks (LANs) like Ethernet and Token Ring, switching methods like circuit switching and packet switching, wide area networks (WANs) like PPP, X.25 and Frame Relay, interconnecting devices, and differences between shared media and switched LAN architectures. It provides details on CSMA/CD and IEEE 802 standards for Ethernet, features and problems of Ethernet, Token Ring features, circuit switching vs. packet switching, PPP, X.25, Frame Relay, ATM, internetworking terms, transparent bridges, and differences between shared media and switched LAN architectures.
The document discusses different types of loaders and their functions. It explains that a loader takes object code as input and prepares it for execution by performing allocation of memory, linking of symbolic references, relocation of addresses, and loading the machine code into memory. It describes various types of loaders like compile-and-go, absolute, bootstrap, and relocating loaders. A relocating loader is able to load a program into memory wherever there is space, unlike an absolute loader which loads programs at fixed addresses.
1. Linked lists provide a dynamic data structure where elements are linked using pointers. Elements can be easily inserted or removed without reorganizing the entire data structure.
2. Linked lists are commonly used to implement stacks and queues, where elements are added or removed from the top/front of the structure. Dynamic memory allocation allows pushing and popping elements efficiently.
3. Polynomials can also be represented using linked lists, where each term is a node containing the coefficient and exponent, linked in descending exponent order. This provides an efficient way to perform operations on polynomial expressions.
Iris ngx next generation ip based switching platformMohd Arif
IRIS NGX is a next generation IP-based switching platform that supports both soft and hardware-based switching. It provides a flexible, distributed architecture for integrating IP networks and supports various interfaces and protocols. The system includes IRIS NGX software, communication servers, peripheral shelves, media gateways, and IP phones. It offers advantages like seamless IP network integration, efficient network capacity expansion, and high reliability.
This document discusses IPSec and SSL/TLS as approaches to securing network communications at different layers of the protocol stack. It provides an overview of how IPSec operates at the network/IP layer using techniques like AH and ESP to provide authentication and encryption of IP packets. It also summarizes how SSL/TLS works at the transport layer to establish a secure connection and protect communications between applications using ciphersuites, handshaking, and record layer encryption. The document outlines some strengths and weaknesses of each approach.
1) IPsec provides data confidentiality, integrity, and authentication for IPv4 and IPv6 networks through protocols like AH and ESP.
2) It uses security associations to define encryption and authentication parameters for secure communication between hosts or subnets.
3) The Internet Key Exchange (IKE) protocol negotiates security associations and authenticates peers to securely establish IPsec tunnels.
This document provides an overview of computers, including hardware, software, and organization. It discusses how computers process data under instruction from programs and are made up of various hardware components like the keyboard, screen, and processing units. The document also summarizes Moore's Law, which predicts that the number of transistors on integrated circuits doubles approximately every two years, and how this affects computer performance and memory capacity over time. Finally, it describes the typical organization of a computer into logical units including input, output, memory, arithmetic logic, control processing, and secondary storage.
The document discusses heap sort, which is a sorting algorithm that uses a heap data structure. It works in two phases: first, it transforms the input array into a max heap using the insert heap procedure; second, it repeatedly extracts the maximum element from the heap and places it at the end of the sorted array, reheapifying the remaining elements. The key steps are building the heap, processing the heap by removing the root element and allowing the heap to reorder, and doing this repeatedly until the array is fully sorted.
Fueling AI with Great Data with Airbyte WebinarZilliz
This talk will focus on how to collect data from a variety of sources, leveraging this data for RAG and other GenAI use cases, and finally charting your course to productionalization.
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on integration of Salesforce with Bonterra Impact Management.
Interested in deploying an integration with Salesforce for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Digital Marketing Trends in 2024 | Guide for Staying AheadWask
https://www.wask.co/ebooks/digital-marketing-trends-in-2024
Feeling lost in the digital marketing whirlwind of 2024? Technology is changing, consumer habits are evolving, and staying ahead of the curve feels like a never-ending pursuit. This e-book is your compass. Dive into actionable insights to handle the complexities of modern marketing. From hyper-personalization to the power of user-generated content, learn how to build long-term relationships with your audience and unlock the secrets to success in the ever-shifting digital landscape.
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slackshyamraj55
Discover the seamless integration of RPA (Robotic Process Automation), COMPOSER, and APM with AWS IDP enhanced with Slack notifications. Explore how these technologies converge to streamline workflows, optimize performance, and ensure secure access, all while leveraging the power of AWS IDP and real-time communication via Slack notifications.
5th LF Energy Power Grid Model Meet-up SlidesDanBrown980551
5th Power Grid Model Meet-up
It is with great pleasure that we extend to you an invitation to the 5th Power Grid Model Meet-up, scheduled for 6th June 2024. This event will adopt a hybrid format, allowing participants to join us either through an online Mircosoft Teams session or in person at TU/e located at Den Dolech 2, Eindhoven, Netherlands. The meet-up will be hosted by Eindhoven University of Technology (TU/e), a research university specializing in engineering science & technology.
Power Grid Model
The global energy transition is placing new and unprecedented demands on Distribution System Operators (DSOs). Alongside upgrades to grid capacity, processes such as digitization, capacity optimization, and congestion management are becoming vital for delivering reliable services.
Power Grid Model is an open source project from Linux Foundation Energy and provides a calculation engine that is increasingly essential for DSOs. It offers a standards-based foundation enabling real-time power systems analysis, simulations of electrical power grids, and sophisticated what-if analysis. In addition, it enables in-depth studies and analysis of the electrical power grid’s behavior and performance. This comprehensive model incorporates essential factors such as power generation capacity, electrical losses, voltage levels, power flows, and system stability.
Power Grid Model is currently being applied in a wide variety of use cases, including grid planning, expansion, reliability, and congestion studies. It can also help in analyzing the impact of renewable energy integration, assessing the effects of disturbances or faults, and developing strategies for grid control and optimization.
What to expect
For the upcoming meetup we are organizing, we have an exciting lineup of activities planned:
-Insightful presentations covering two practical applications of the Power Grid Model.
-An update on the latest advancements in Power Grid -Model technology during the first and second quarters of 2024.
-An interactive brainstorming session to discuss and propose new feature requests.
-An opportunity to connect with fellow Power Grid Model enthusiasts and users.
Ivanti’s Patch Tuesday breakdown goes beyond patching your applications and brings you the intelligence and guidance needed to prioritize where to focus your attention first. Catch early analysis on our Ivanti blog, then join industry expert Chris Goettl for the Patch Tuesday Webinar Event. There we’ll do a deep dive into each of the bulletins and give guidance on the risks associated with the newly-identified vulnerabilities.
Threats to mobile devices are more prevalent and increasing in scope and complexity. Users of mobile devices desire to take full advantage of the features
available on those devices, but many of the features provide convenience and capability but sacrifice security. This best practices guide outlines steps the users can take to better protect personal devices and information.
How to Get CNIC Information System with Paksim Ga.pptxdanishmna97
Pakdata Cf is a groundbreaking system designed to streamline and facilitate access to CNIC information. This innovative platform leverages advanced technology to provide users with efficient and secure access to their CNIC details.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
HCL Notes and Domino License Cost Reduction in the World of DLAU
User level view of os
1. System Software for Program Execution:
User-level View of Operating Systems
COMP 229 (Section PP) Week 6
Prof. Richard Zanibbi
Concordia University
February 13, 2006
2. Last Week...
Supports Programming,
Efficient System Use
System Software for Program Execution (pp. 1-18)
Systems and application software (again)
Resource Abstraction Applies System Software
Resource Sharing to a Problem
Operating System Strategies (pp. 18-39) including
A brief history of computing and operating systems BIOS
(batch, timesharing, personal, SCC’s, embedded, networks)
The modern OS as integration/evolution of previous systems
Goals:
1. Learn the function and operation of operating systems
2. Learn how to exploit OS design during programming (for
program execution) “Hacker notes” 2
3. Resource Abstractions
Files
Represent data on storage devices (e.g. disk)
Represent data structured as a list
Abstract Machines
Represent resources for executing programs
Program running on abstract machine: a “process”
Good Abstractions for Programmers:
Easy to understand
Provide necessary control (not “too abstract”)
COMP 229-PP (Week 6, Feb. 8) 3
4. Resource Sharing
Resource Sharing
Time-multiplexed: share time on resource (“take turns”, e.g. processor)
Space-multiplexed: share space on resource (e.g. memory)
Transparent Resource Sharing
Sharing “invisible” to programmer (done by OS)
e.g. simulating multiple abstract machines (multiprogramming)
Explicit Resource Sharing
Programmer requests resource sharing
e.g. sharing memory between programs
Resource Isolation
OS permits one process (abstract machine) access to a resource at a time
Security and Consistency Issues
Prevent problematic or malicious access to resources
4
6. Operating System Strategies
OS Strategy
General characteristics of the programmer’s abstract machine
Early Days (approx. pre-1960)
One program at a time, basically no OS
Strategies
1. Batch systems: executed non-interactively, multiprogramming
2. Timesharing systems: multiple users interacting with the system;
extended multiprogramming, security
3. Personal Computers, and Workstations: single-user machines;
multiprogrammed, minimize wait time rather than max. hardware
use (many had no file system (!); provided by CP/M, MS-DOS)
4. Embedded systems: guaranteed response times (“real time”)
5. Small, Communicating Computers (SCC’s): new resource
management, power management, device management
6. Network Technology: handle resources, information on networks
COMP 229-PP (Week 6, Feb. 8) 6
7. This week...
User-Level View of Operating Systems
The Programmer’s Abstract Machine (pp. 42-47)
Sequential Computation (“single thread”)
Multithreaded Computation
Process Resources (pp. 47-52)
esp. files (under UNIX, Windows)
More on Processes and Threads (pp. 52-58)
Writing Concurrent Programs (pp. 58-72)
Executing Computations
Executing Commands in UNIX and Windows
Objects (pp. 72-74)
7
9. Sequential Computation
Algorithm
A process or set of rules for calculation or problem-solving, esp. with a
computer (CA Oxford Dictionary)
Sequential algorithms
Describe a sequence of operations
Fundamental abstraction for computation
Examples
Sorting and Search Algorithms
(e.g. Vol.3,“The Art of Computer Programming” (Donald Knuth))
Algorithms May be Defined Using
– Natural Language (e.g. English or French)
– Pseudocode (“informal” operation sequence)
– Mathematics
• may not provide an explicit operation sequence
– As a Source Program in a Programming Language (e.g. C/C++, Java)
• explicit sequence of operations (unambiguous) 9
10. System Calls
Binary Program
– Machine-readable translation of source program (e.g.
“load module”, or executable program (.exe) )
– Represents explicit machine instructions used to
implement an algorithm (e.g. op. sequence)
System Calls in Binary Programs
– Procedure calls to the system call interface invoke OS
features (e.g. stop a program, read data from a device)
– System calls allow the programmer to take advantage
of resource abstractions and sharing built into the OS
COMP 229-PP (Week 6, Feb. 8) 10
11. What is POSIX?
Portable Operating System Interface
Developed to standardize UNIX system call
interfaces
POSIX.1: published 1988
Now used by a large number of UNIXes,
including Linux
• Linus Torvalds, Univ. Helsinki, Finland, first
announced Linux on the Minix newsgroup in 1991
COMP 229-PP (Week 6, Feb. 8) 11
12. Sequential Computation and
Multiprogramming
Running a Program
1. Translate source to binary program (and possibly link)
2. Provide program input data, parameters
3. Direct OS to start executing instructions from the transfer address
(“main entry point”) (includes OS calling program loader)
4. Program halts when last statement is executed or system call for halt
(exit()) is made
Execution Engine (part of a process)
Used by OS to implement multiprogramming
Status of abstract machine running the process
Copy of the runtime stack for the process
Runtime Stack
Used to implement “scopes” in languages (among other things)
Contains local variables, return addresses, etc.
Fig. 1.2: “Classic” processes (e.g. UNIX) 12
13. Multiprocessing vs. Multithreading
“Classic” Process
Sequential program “run” alone on its own abstract machine
Multiprocessing
Concurrent execution of processes
Processes contain separate resource abstractions, binary program copies
Multithreading
Thread: another name for “execution engine”
• “Classic” processes have a single thread
Multithreading: multiple threads within a single process
Threads within a process share resources, including binary program
Example: Fig. 2.6 (Multithreaded process, as found in Windows
NT/XP, Linux with POSIX threads extension (2.2+))
Example: Fig 2.3 (“accountant example”)
COMP 229-PP (Week 6, Feb. 8) 13
14. Implementing Threads
Example: Java
Java Virtual Machine (JVM) supports threads
Thread base class supports threads
Create subclass of Thread (e.g. MyThread): instances
define a new thread
Executing Threads
– If multiple processors are available, threads may be
executed in parallel
– Otherwise (usually) threads share the processor
(through time-multiplexing)
COMP 229-PP (Week 6, Feb. 8) 14
16. OS Management of
Resources Used by Processes
Resource Allocation
Threads access resources through system calls
(insures resource isolation)
1. Threads must request a resource before use
2. After request, thread is suspended until resource is allocated to it
• while suspended, other threads/processes allocated processor time
3. After a resource is allocated to a thread, all threads in its
associated process may share access to the resource (the
process “owns” the resource)
Memory and Processors
Traditionally distinguished from other resources
– Processes/threads (implicitly) request processor when ready
– When user process is started, loader requests memory from the
OS to run the program (e.g. user login -> shell -> interaction)
16
17. Resource Descriptors
– Data structures used to represent physical and
abstract resources managed by the OS
– Indicates if resource is available
– Includes record of which processes are
currently blocked waiting for the resource
e.g. file descriptors, process descriptors
COMP 229-PP (Week 6, Feb. 8) 17
18. Files and File Descriptors
Files
– Named, linear stream of bytes stored on a device
– Common (default) method for representing data storage
– Forms the basis of many other device abstractions
– OS maintains record of which files are currently open
File Lock
OS preventing processes other than currently allocated from accessing a
file (e.g. for writing)
File Descriptor
OS’s internal representation of file attributes (for file resources)
• e.g. Indicates if file is locked, or read-only
UNIX: a non-negative integer (file descriptor (inode) number)
Windows: “HANDLE”: reference to internal data structure
COMP 229-PP (Week 6, Feb. 8) 18
19. (Internal) OS Representation of
Byte Stream Files
Name: Test (ASCII)
Byte Value
File Pointer
On file open: 0 0100 0001 A
(default) pointer set to 0 1 0100 0010 B
Read/Write K bytes: 2 0100 0011 C
Advance pointer by K
3 0100 0100 D
Setting File Pointer: 4 0100 0101 E
lseek() (POSIX)
SetFilePointer() (Win) 5 0100 0110 F
No “Type” for Bytes: 6 0100 0111 G
19
Treated as “raw” bytes
20. Example: POSIX File System Calls
System Call Effect
open() Open file for read or write. OS creates internal
representation, optionally locks the file. Returns
a file descriptor (integer), or -1 (error)
close() Close file, releasing associated locks and
resources (e.g. internal representation)
read() Read bytes into a buffer. Normally blocks
(suspends) a process until completion. Returns #
bytes read, or -1 (error)
write() Write bytes from a buffer. Normally blocks
(suspends) a process until completion.
Returns # bytes written, or -1 (error)
lseek() Set the file pointer location
fcntl() (“File Control”): various options to set file
20
attributes (locks, thread blocking, ....)
21. Rough Equivalences
for POSIX and Win32 API
POSIX Win32
open() CreateFile()/ OpenFile()
close() CloseHandle()
read() ReadFile()
write() WriteFile()
lseek() SetFilePointer()
21
22. Examples
UNIX file system calls, Fig. 2.4
Windows file system calls, Fig. 2.5
COMP 229-PP (Week 6, Feb. 8) 22
23. Using File to Represent Other Resources:
Devices and Pipes in UNIX
Other Resource Abstractions
e.g. keyboard, display, memory, processors
– The more similar these abstractions are, the easier they are for
programmers to use
UNIX Devices
Devices are represented as files in the directory tree
– Devices: located in the /dev directory (e.g. /dev/tty)
– Devices have open(), close(), read(), write(),
seek(), fcntl() commands implemented in their drivers
(similar to file interface)
UNIX Pipes
Abstract resource allowing processes to communicate by chaining
outputs to inputs
e.g. > cat schedule.txt | grep deadline
– Inputs/outputs are represented using standard files for each
process (standard input and standard output) 23
25. Heavyweight vs. Lightweight Threads
Heavyweight (“Classic”) Process
Processes which may contain exactly one thread
(execution engine)
Lightweight Process (= “Thread”)
– A thread (execution engine) within a multithreaded
process
– “Light” because each thread does not require the
overhead of a separate process
Illustration/Example: Fig. 2.6
COMP 229-PP (Week 6, Feb. 8) 25
26. Thread Representation (Data)
in Detail
Runtime Stack
Data private to the thread (e.g. local variables)
Status
OS data structure: all properties unique to the thread
– program counter value
– whether thread is blocked waiting for a resource
– which resource is being waited for
– etc.
COMP 229-PP (Week 6, Feb. 8) 26
27. The Move Towards Threads
Lightweight Processes (Threads)
Became popular in late 1990’s (esp. w. Java)
Motivation: Sharing Resources
– Server managing shared file systems
– Windowing systems using threads to represent
individual windows within the physical display
Example: Fig. 2.7 (window threads)
COMP 229-PP (Week 6, Feb. 8) 27
28. Thread Libraries vs. True Threading
Thread Libraries (Early 1990’s)
Used to run threads within heavyweight (“classic”)
processes (e.g. Mach C thread library)
OS still implemented classic processes only
Problem: if one “thread” blocks, then all threads block
“True” Threading
OS implements and manages threads independently of
one another
If a thread in a multithreaded process blocks, the other
threads can still execute
COMP 229-PP (Week 6, Feb. 8) 28
29. Creating Processes and Threads
Initial Process
– The first process started when machine is turned on
– Usually the bootstrap loader loading the OS into
memory
Creating New Processes and/or Threads
Done using system calls (i.e. another resource request)
– If threads are available, separate system calls are used
for creating threads and creating processes
COMP 229-PP (Week 6, Feb. 8) 29
30. (Initial Process, after turning computer on)
Bootstrap Loader
Child Process of (Loads OS) Parent Process of
OS (UNIX)
Sibling Processes
Login Shell 1 Login Shell 2 Login Shell 3
Bash Shell
Email Program Web Browser
COMP 229-PP (Week 6, Feb. 8) 30
31. FORK(), JOIN(), and QUIT()
System Calls
(Conway, 1963; Dennis, Van Horne 1966)
Purpose
Define cooperating sequential processes executing on shared data
Like threads, processes can share resources (e.g. binary program copy)
FORK(label)
– Creates a child process that begins execution at “label”
– Parent (calling) process continues execution after child is created
– Parent, child are executed concurrently
QUIT()
Terminates and deallocates (removes) the process issuing the call
JOIN(count)
– Used to merge processes
– count is an integer variable shared by a parent and its child processes
– Locks processor until system call is finished (prevents inconsistency)
31
32. Effect of JOIN(count)
/* Decrement shared variable */
count = count – 1;
/* QUIT unless this is the last process */
if (count != 0) QUIT();
(example provided pp. 56-57)
COMP 229-PP (Week 6, Feb. 8) 32
33. Creating “Classic” (Heavyweight)
Processes (~1970)
Classic Process
Single-threaded
Separate resource representation per process
Each has a separate, private address space
Address Space
– Physical resources (mainly memory) that can be
referenced by the execution engine (single thread)
– Contains stack, status, data, and program (“text”)
– A memory protection mechanism: prevents writing
over memory allocated to other processes
33
34. Creating “Classic” (Heavyweight) Processes
Using fork() in POSIX/UNIX
fork()
Creates new process
Child is given copy of current address space
Parent and child address spaces are separate
• e.g. changing a variable in the child process does
not change the variable’s value for the parent
Process Communication In UNIX
Only permitted through open files
COMP 229-PP (Week 6, Feb. 8) 34
35. Example: Creating a new process using
fork()
1. fork() instruction is executed, causing
a system call
2. OS copies data (including address
space) from the original process to
the child process
3. The child process starts execution at
the instruction following the fork()
instruction
COMP 229-PP (Week 6, Feb. 8) 35
36. Creating Modern and (Lightweight)
Processes
Creating Modern Process
– Created by system call from a thread
– Child created with separate address space, resources
– A base thread must be created to execute the process
e.g. CreateProcess() in Windows API
Threads Creating Child Threads within a Process
– Again, using a system call from a thread
– Similar to Conway FORK(): child thread runs within the
process containing the parent thread
– Child thread has stack and status separate from parent
e.g. CreateThread() in Windows API
36
37. Example: Creating a New Thread
in a Modern Process
1. CreateThread(...) is executed
• NOTE: unlike fork(), CreateThread() has many
parameters
2. OS creates thread data within the
process address space (i.e. within the
same process)
3. OS starts execution of child thread at
the indicated starting point
COMP 229-PP (Week 6, Feb. 8) 37
39. Multiple Single-Threaded Processes:
the UNIX Model
Unix Process Behaviour Defined By
Text segment (program instructions)
Data segment (static program data)
Stack segment (run-time stack: local variables)
*located in the address space
UNIX Executable (Binary) Programs
Compiled/Linked programs define the text, data, and stack
segments (“a.out”)
Example: Class UNIX processes (Fig. 2.10)
Note that the address space contains the Status, Stack Segment,
Text Segment, and Data Segment
COMP 229-PP (Week 6, Feb. 8) 39
40. Process Descriptors and
Context Switching
Process Descriptor
OS Data Structure representing process attributes, incl.:
• PID: Process Identifier (a reference to the process descriptor)
– UNIX: PID is integer index for OS-internal table of process descr’s
• User that created the process
• Parent, Sibling, and Child processes
• Resources held by process (e.g. file descriptor references)
• Address space for the process
• Threads within process
• State and Stack Location (in memory) (for classic process)
Context Switching
Refers to switching the active process and/or thread
May involve swapping a process/thread out of memory
and storing it on a device (e.g. disk), among other ops. 40
41. UNIX Process Commands
“ps” command
– Lists process identifiers (PID) for the user
– “ps –aux”: lists all processes in the system
int fork()
– Returns PID of child process to the parent
– Returns 0 to child process
– Child given copy of text, data, stack segments, access
to all open file resources
– Parent process descriptor also copied
– The next process run may be the child, parent, or
some other process
COMP 229-PP (Week 6, Feb. 8) 41
42. fork() Examples
Example 1: What do the parent and child output?
theChild = fork()
printf(“My PID is %dn”,theChild)
Example 2: Directing child process execution
childPID = fork()
if (theChild == 0) {
/* child executes here */
codeForTheChild();
exit(0); // Important!
}
/* Parent executes here */
...
COMP 229-PP (Week 6, Feb. 8) 42
43. Changing Program Data Dynamically:
execve()
int execve(char *path,char *argv[],char *envp[]);
program arguments environment
variables
Effect of execve()
– Replaces text, data, and stack areas using the program
loader
– After loading, stack is cleared, variables initialized
– Program is started (call does not return)
System Calls to Wait for Child Process to Stop:
wait(): block until any child process terminates
waitpid(P): block until child process with PID P terminates
43
44. Multiple Modern Processes
(e.g. Windows)
Process Creation (CreateProcess())
Flexible: many more parameters than in fork() (10!)
Base process can start anywhere in program code
Returns two resource descriptor references:
• one for the new process
• one for the new base thread
Thread Creation (CreateThread())
Again, flexible, this time with 6 parameters
A thread may create a sibling thread
(see text pp. 66-67 for function signatures, discussion)
44
45. Executing Commands in
UNIX and Windows Shells
Fatal Errors
Unrecoverable process errors
• e.g. trying to write outside a processes’ address space
System Shells
Users needs to be able to execute any program,
however buggy, but without crashing the shell
Solution:
Create a child process to execute each command
• e.g. using fork() or CreateProcess()
COMP 229-PP (Week 6, Feb. 8) 45
47. Objects: Another Abstraction
Objects
– Originally used to represent independent “computation units” in
simulations; similar to a small process (e.g. workflow simulation)
– Have private data and operations, along with message passing
operations (e.g. get/set operations)
– Can be used to represent a coordinated execution of distributed
computational units (as was common in simulations)
Classes
– Simula 67: introduces notion of classes to define object
behaviour (similar to programs for threads/processes)
– First widespread application: interfaces (e.g. InterViews, 1989)
– Java: OS calls into the Java Virtual Machine (JVM), which runs
on top of the native OS (a simulation in an abstract machine!)
– OS may be designed to support efficient object implementations
– Early attempts at “pure” OO operating systems: efficiency issues
47
48. Windows NT/2000/XP
Kernel and Objects
Primitive OS Components
Defined as objects
Implemented as C functions: no language inheritance
Threads
– Creating a thread generates a kernel Dispatcher
Object, which then has additional status fields specific
to threads added (“pseudo inheritence”)
– This approach allows Kernel operations to be applied
uniformly to a broad class of abstract data types
COMP 229-PP (Week 6, Feb. 8) 48
49. Summary
• Classic Processes (e.g. in “Old” UNIX)
• Multithreaded Processes (e.g. in Linux,
Windows)
• Creating Processes and Threads
• Resource Descriptors (file and process)
• Resource Management
• File (e.g. open()) and Process (e.g. fork(),
CreateThread()) System Calls
• Overview of Writing Concurrent Programs
• Objects and Operating Systems 49
50. Next Week...
Operating Systems Organization
pages 89-110
Process Management
pages 197-206
COMP 229-PP (Week 6, Feb. 8) 50