Title: Operating systems ICOM 5007
1Operating systems ICOM 5007
- Webpage - http//ece.uprm.edu/noack/icom5007
- Includes
- Project
- Labs
- Standard methodology lectures and exams
2Purpose and Objectives
- Purpose
- To introduce the principal concepts of operating
systems and to give experience in programming
concurrent processes as used in developing
operating systems - Objectives
- After completing this course you should be able
to - Understand the basic concepts of operating
systems and concurrent interacting processes - Be able to use these concepts either in
programming operating systems or in designing and
implementing other systems using concurrency
3The ABET outcomes for ICOM 5007
- Understand the five resource types of an
operating system - Analyze the differences between Linux and Windows
operating system structure - Analyze the organization of Linux source code and
describe how it accomodates various platforms and
I/O devices - Program and analyze performance of representative
concurrency examples - Relate memory management techniques to process
structure and reliable OS functioning - Analyze a typical device driver, understanding
methods to link it to the OS as a whole - Program a threaded application in a language
supporting monitors such as Java - Relate system security aspects to OS internals
- Analyze malware and hacking attacks as they
relate to OS - Define, implement and test a significant OS
project - Coordinate group accomplishment of the project
- Prepare and give oral and written project reports
4Operating Systems - Administrivia
- Prontuario - Please time-share and ask questions
- Info is in my homepage http//ece.uprm.edu/noack
- Make bookmark for ICOM5007
- Page contains
- prontuario
- Links to old exams and labs
- Links to authors webpage and resources
- Links to current assignments, writeups, and
slides as developed - Course includes
- Exams and lecture material
- Lab work
- Project (described in course page)
- Lab
- Partly in OS/Networking lab
- Individual programs, often using Linux source or
Java threads
5More Administrivia
- Office hours
- Tuesday, Thursday 900 am 1030 am, 1230 pm
200 pmAlso I am often available in the
universal hour Tuesday and Thursday 1030 am
1230 pm - For in-office consultation I suggest calling on
X3652 or emailing and will normally see you any
time I am in the office). - I will answer questions after class or between
classes in the classroom, but not when it
interferes with the next class given by another
professor. - Email is often the best way to resolve detailed
or short questions. I am easily available by
email, even at odd times such as evenings and
weekends.
6More Administrivia
- Save a tree.
- Except for exams, the prontuario is the last
piece of paper to be passed out in class. - All other material will be distributed through my
web page http//ece.uprm.edu/noack. You are
responsible for checking this page at least once
per week, and when changes are announced in class - Similarly, homework and projects are to be handed
in as email enclosures and not hardcopy. - Exams
- The exams will be held from 730-930 PM,
February 17, March 17, and April 28, in S-227 or
S-228, or S-229. - If you have a conflict with a regular class or
with an exam announced before this document is
distributed please contact me. If an exam is
announced for another class after this date, the
other instructor is responsible for resolving the
conflict. - One compensatory free period will be given for
each night exam.
7Operating Systems - More Trivia
- Lab instructor to be announced
- Projects
- Info on course page
- Try to form groups soon - three or four people
- Project can be
- Device driver or module
- Operating system utility
- Operating system modification/improvement
- More information on course page
8More Administrivia
- New textbook edition appeared in December 2007
- Do not buy the second edition (dark blue book)
- The older edition was six years old good but
outdated - Link to the text page coming soon to your
neighborhood - Email addresses and project names
- Please send an email with your name
- When you form a project group please give it an
easily recognizable name put that name as part
of any file you email. Also, send an email with
the project name and copy it to all the group
members - In any document you turn in please put all your
names and email addresses that allows me to put
comments in the document and return them in
email. - Be kind to trees use email, not paper.
9Operating Systems - Basics
- An OS is a program that controls and shares the
- resources of a computing system, which are
- CPU time (or allotment in distributed systems)
- Memory allocation and swapping to background
- I/O device handling - the dirty details
- File systems
- Network devices, layers and protocols
- An OS is (after initial setup) an
interrupt-driven program - Interrupts may come from
- I/O devices
- Timer interrupts - time slicing and hangup
recovery - Software interrupts - system call mechanism
10Operating Systems - Structures
- Monolithic
- One big complicated layer between users and
hardware - Unix is a typical monolithic system
- Layered - with microkernel
- Example - Mach contains
- Processes
- Threads
- Messages
- Memory blocks
- and everything else is implemented in higher
layers using these highly protected basics - Virtual Machine
- VM360 (IBM) is an example
- The virtual machine layer is
- between hardware and client machines
- emulates a separate machine for each user session
11The basic layered structureof all operating
systems
Application layer
System call interface
Operating system
Hardware/software interface
Hardware components
The concentric shell picture
Layers as usually drawn
12More OS Structures
- The main OS program is often called the kernel
- The Kernel
- operates in privileged mode
- contains the device drivers and modules
- contains process, memory and file management
- is protected by the system call interface - the
INT instruction in 80x86 architecture - The system call interface
- Is implemented by the INT (in i386) or similar
instruction - Is used when a user program makes a system call
- Is the transition from user to kernel mode
- Keeps users from running kernel code
13Monolithic operating system structuree. g.
Unix/Linux
Application layer
System call interface
Process handling
File system routines
Memory management
Intermediate routine
Device driver
Device driver
Hardware
14Microkernel-based systeme. g. Mach (used for
distributed systems)
Application layer
Outer kernel I Could be Posix Compliant layer
Outer kernel II Could be VMS emulator
Outer kernel III Experimental OS?
Microkernel layer
Hardware entities (can be several)
15Virtual machine systemVM first secure OS for
IBM 360/370
Virtual machine layer
Hardware
16Inside Windows 2K
17Inside the Linux kernel
18The shell is not the kernel
- The shell is an ordinary user program
- It operates by creating processes that in turn do
system calls or run programs - It is the equivalent of COMMAND.COM in MS/DOS
- Shell programming is possible and is often done
in OS utilities - Extensions of shell programming include
- PERL
- awk and sed
- ksh, csh, bash and other enhanced shells
19The standard lies of OS
- There is a separate processor for each process
- The CPU is time-shared
- You really have all that memory
- Memory is loaded only when needed - demand paging
- You are really doing all those disk operations
- The operations are done when and if the OS
pleases - the disk block cache idea - That remote file system is really there
- Remote file system utilities are a little
unpredictable - The OS is really secure
- Ask the big kids
20Concurrency
- The theoretical core of OS
- An OS creates a set of processes that run
concurrently - A process is like a person - it has
- a stream of consciousness
- possessions - memory, files, data
- is created, reproduces, dies
- interacts with other processes
- In actuality, it is a program in execution
- Concurrent process misbehaviors
- Race conditions - unpredictable results because
processes simultaneously modify data or devices - Deadlocks - Each has what the other wants, nobody
gets anywhere - Starvation - some processes go hungry - others
eat well
21Some operating system ideas
- Everything is a file - even devices
- This allows a program to work with human input,
or a device, or a temporary or permanent file or
even a network connection - The file system provides access control for
devices also protects raw disk operations from
users - Interrupt-driven behavior
- Example - windows - process is simultaneously
sensitive to events from mouse, keyboard, process
subsystem, and window manager - Caching - Foreground and background copies
- Used in
- Cache memory
- Swapping
- The disk block cache - recent transactions are in
memory - Networking utilities
- Advantage operations take place at memory speeds
22What is changing in OS
- Applications
- More varieties of systems now need OS
- Embedded systems
- Mobile computing (cellphones, PDAs
- Desktop systems
- Servers and small enterprise systems
- Large distributed systems
- Hardware
- Multicore processors
- Gadgets
- Mobile computing (usually wireless)
- Server complexes
- Large distributed and redundant systems