780 likes | 1.03k Views
Operating Systems. What is an Operating System?. A program that acts as an intermediary between a user of a computer and the computer hardware. Operating system goals: Execute user programs and make solving user problems easier. Make the computer system convenient to use.
E N D
What is an Operating System? • A program that acts as an intermediary between a user of a computer and the computer hardware. • Operating system goals: • Execute user programs and make solving user problems easier. • Make the computer system convenient to use. • Use the computer hardware in an efficient manner.
Computer System Components 1. Hardware – provides basic computing resources (CPU, memory, I/O devices). 2. Operating system – controls and coordinates the use of the hardware among the various application programs for the various users. 3. Applications programs – define the ways in which the system resources are used to solve the computing problems of the users (compilers, database systems, video games, business programs). 4. Users (people, machines, other computers).
Operating System Definitions • Resource allocator – manages and allocates resources. • Control program – controls the execution of user programs and operations of I/O devices . • Kernel – the one program running at all times (all else being application programs).
Simple Batch Systems • Hire an operator • User operator • Add a card reader • Reduce setup time by batching similar jobs • Automatic job sequencing – automatically transfers control from one job to another. First rudimentary operating system. • Resident monitor • initial control in monitor • control transfers to job • when job completes control transfers back to monitor
Time-Sharing Systems–Interactive Computing • The CPU is multiplexed among several jobs that are kept in memory and on disk (the CPU is allocated to a job only if the job is in memory). • A job is swapped in and out of memory to the disk. • On-line communication between the user and the system is provided; when the operating system finishes the execution of one command, it seeks the next “control statement” not from a card reader, but rather from the user’s keyboard. • On-line system must be available for users to access data and code.
Personal-Computer Systems • Personal computers – computer system dedicated to a single user. • I/O devices – keyboards, mice, display screens, small printers. • User convenience and responsiveness. • Can adopt technology developed for larger operating system’ often individuals have sole use of computer and do not need advanced CPU utilization of protection features.
Common OS System Components • Process Management • Main Memory Management • Secondary-Storage Management • I/O System Management • File Management • Protection System • Networking • Command-Interpreter System
UNIX Versions & Clones • System V (AT&T) • AIX (IBM) • BSD (Berkeley Univ.) • HP-UX (HP) • Linux (Linus Torvalds) • Minix (Tanenbaum) • OSF (open software foundation) • SCO (santa cruz operation) • Solaris (SUN Microsystems) • XENIX (Microsoft) • FreeBSD
UNIX HISTORY • 1950’s time-sharing invented at Dartmouth & MIT (sys. running only basic) • MIT System CTSS • 2nd Generation: MIT, Bell Labs, GE designed MULTICS (Multiplexed Information Computing Service) • Ken Thompson from Bell Labs wrote stripped down MULTICS on a discarded PDP-7. Code was written in assembly language. • Brian Kernighan – (Bell labs) called the system UNICS (Uniplexed Information Computing Service). Later this name was changed to UNIX. • Dennis Ritchie joined the team of Ken Thompson. • UNIX moved to PDP-11 • B and later C languages were designed/developed.
UNIX HISTORY • Thompson and Ritchie rewrote UNIX in C. • 1974, Thompson and Ritchie wrote a landmark paper on on UNIX. • Universities started to ask for a copy of UNIX. • By Mid 80’s UNIX was in widespread use. • AT&T released first commercial UNIX product : System III which was not well received. • AT&T later released System V. • AT&T decided to concentrate on telephone business. Sold UNIX business to Novell – 1993. • Novell sold UNIX biz to Santa Cruz Operation in 1995.
UNIX HISTORY • Berkeley Unix (BSD: Berkeley Software Distribution). Introduces many improvements, networking TCP/IP. • System V and BSD are major 2 Unix flavors • IEEE POSIX standard was developed to reconcile these two flavors – took intersection of these two systems • POSIX: Portable Operating System IX • POSIX Idea: A software vendor who writes his a program that uses only procedures defined in POSIX standard knows that this program will run on every conformant UNIX system. • OSF : (Open Software Foundation), IBM, DEC, HP Unix system version (with X11, Motif etc included) • OSF gradually vanished
UNIX HISTORY • Solaris: (from SUN Microsystems) is based on System V. • Minix (Tanenbaum) written for educational purposes ’87, 12K lines of code. • Linux: developed by finnish student Linux Torvalds), first released in ’91. • Minix has micro-kernel architecture, Linux is monolithic. • Big famous argument between Tanenbaum & Linus about micro-kernel vs monolithic operating systems.
Windows Desktop OS Family History 2006 Windows Vista 2009 Windows 7
Windows Server OS History 2003 2005 Windows Server 2003 R2 2008 Windows Server 2008 2009 Windows Server 2008 R2
Miscellaneous OSs • NeXTSTEP, OPENSTEP : • object-oriented, multitasking operating system developed by NeXT • Computer. • MAC OS: • - Apple computer operating system • - Based on Mach/NextStep/FreeBSD/NetBSD • iOS: based on Mac OS X, runs on the iPhone, iPod Touch, iPad • Android • mobile operating system • developed by Android Inc. was purchased by Google in 2005 • based upon a modified version of the Linux kernel. • Symbian : • - Nokia's mobile operating systems for mobile devices and smartphones
HTML • Hypertext Markup Language • Identifies the elements of a page so that a browser such as MS Internet Explorer or Netscape can render that page on the computer screen • Static page description • WYSIWYG web page authoring tools • MS Frontpage • Dreamweaver • Home Site
HTML Example Source <HTML> <HEAD> <TITLE> Hello </TITLE> </HEAD> <BODY> <P> Hello world </P> </BODY> </HTML>
HTML Form Example <HTML><HEAD> <TITLE> Hello </TITLE> </HEAD> <BODY> <FORM METHOD="GET" ACTION="http://localhost/cgi-bin/ex.cgi > <INPUT TYPE="text" NAME="word"> <INPUT TYPE="submit" VALUE="Submit word"> </FORM> </BODY> </HTML>
GET and POST METHODS • GET method passes form input as part of the URL to the server side program: • http://www.yahoo.com/cgi-bin/process.cgi?firstname=ali&last=veli • POST method passes input to the standard input of the server side program: • firstname=ali • last=veli
JAVASCRIPT • Scripting language • Browser contains Javascript interpreter which processes the commands in the script • Processed by client
Javascript Example Source <HTML> <HEAD> <TITLE> Hello </TITLE> <SCRIPT LANGUAGE= "Javascript" > function sayhello() { document.writeln("<p> Hello world </p>") ; } </SCRIPT> </HEAD> <BODY ONLOAD= "sayhello()" > </BODY> </HTML>
CSS (Cascading Style Sheets) • Allow you to specify the style of your page elements (spacing, margins etc) separately from the structure of your documents (section headers, body, text, links etc) • “Separation of Structure from Content” allows greater manageability and makes changing the style of the document easier.
CSS Example Source • inline style (w/o CSS) <HTML> <HEAD> <TITLE> Hello </TITLE> </HEAD> <BODY> <P STYLE= “font-size: 20 pt” > Hello world </P> </BODY></HTML>
CSS Example Source • css style sheet <HTML> <HEAD> <TITLE> Hello </TITLE> <STYLE TYPE = “text/css”> P {font-size: 20 pt } </STYLE> </HEAD> <BODY> <P > Hello world </P> </BODY></HTML>
CSS Example Source • importing the css file: <HTML> <HEAD> <TITLE> Hello </TITLE> <LINK REL = “stylesheet” TYPE=“text/css” HREF = “styles.css” </HEAD> <BODY> <P > Hello world </P> </BODY></HTML>
XML-Extensible Markup Language • HTML markup is for displaying information • XML markup is for describing data of virtually any type • XML enables creation of new markup languages to markup anything imaginable (such as mathematical formulas, records etc) • In XML, new tags can be created • Data is structured in a hierarchical manner
XML example <? xml version = “1.0”> <person> <firstname> Ali </firstname> <lastname> Veli </lastname> <married> yes </married> <wife> <firstname> Ayse </firstname> <lastname> Mehmet </lastname> </wife> </person>
XML Document Model • A “document model” is used to enforce structure within a document • Two types of document models for XML: • DTD – Document Type Definition • XML Schema • Document models are not required in XML
Validating Parsers • A validating parser will check an XML document’s structure against a DTD or XML Schema • Documents that conform to a document model are “valid” • Validating parsers will report an error if the document does not conform to it’s document model, even if it is well-formed
DTD Example: XML File • 1 <?xml version=”1.0” standalone=”yes”?> • 2 <emails> • 3 <message num=”a1” to=”joe@acmeshipping.com” • 4 from=”brenda@xyzcompany.com” date=”02/09/01”> • 5 <subject title=”Order 10011”/> • 6 <body> • 7 Joe, • 8 Please let me know if order number 10011 has shipped. • 9 Thanks, • 10 Brenda • 11 </body> • 12 <reply status="yes"/> • 13 </message> • 14 </emails>
DTD Example: Internal DTD 1 <!DOCTYPE emails [ 2 <!ELEMENT emails (message+)> 3 <!ELEMENT message (subject?, body, reply*)> 4 <!ATTLIST message 5 num ID #REQUIRED 6 to CDATA #REQUIRED 7 from CDATA #FIXED“brenda@xyzcompany.com” 8 date CDATA #REQUIRED> 9 <!ELEMENT subject EMPTY> 10 <!ATTLIST subject 11 title CDATA #IMPLIED> 12 <!ELEMENT body ANY> 13 <!ELEMENT reply EMPTY> 14 <!ATTLIST reply 15 status (yes | no) "no"> 16 ]>
XML Schema • XML Schema specification released by the W3C in May 2001, and contains two parts: • Part I - structure • Part II - data types • Developed as an alternative to DTD’s and is much more powerful • Features: • Pattern matching • Rich set of data types • Attribute grouping • Supports XML namespaces • Follows XML syntax
XML Schema Example 1 <?xml version=”1.0”?> 2 <message 3 xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" 4 xsi:noNamespaceSchemaLocation = "message_schema.xsd"> 5 <to>Joe Poller</to> 6 <from>Brenda Lane</from> 7 <date_sent/> 8 <subject>Order 10011</subject> 9 <body> 10 Joe, 11 Please let me know if order number 10011 has shipped. 12 Thanks, 13 Brenda 14 </body> 15 </message>
XML Schema Example 1 <?xml version=”1.0”?> 2 <xsd:schema xmlns:xsd=”http://www.w3.org/2001/XMLSchema”> 3 <xsd:element name=”message”> 4 <xsd:complexType> 5 <xsd:sequence> 6 <xsd:element name=”to” type=”xsd:string” minOccurs-“1” maxOccurs=”unbounded”/> 7 <xsd:element name=”from” type=”xsd:string” minOccurs=”1”/> 8 <xsd:element name=”date_sent” type=”xsd:date”/> 9 <xsd:element name=”subject” type=”xsd:string”/> 10 <xsd:element name=”body” type=”xsd:string”/> 12 </xsd:sequence> 12 </xsd:complexType> 13 </xsd:element> 14 </xsd:schema>
ASP/PHP • Javascript is client side scripting language • ASP/PHP are server side scripting languages • ASP/PHP process pages on the server and return the results in the form of HTML source to the client (browser) • ASP is Microsoft product
<html> <body> <?php $db = mysql_connect("localhost", "root"); mysql_select_db("mydb",$db); $result = mysql_query("SELECT * FROM employees",$db); printf(“<p>First Name: %s</p>\n", mysql_result($result,0,"first")); printf(“<p>Last Name: %s</p>\n", mysql_result($result,0,"last")); printf(“<p>Address: %s</p>\n", mysql_result($result,0,"address")); printf(“<p>Position: %s</p>\n", mysql_result($result,0,"position")); ?> </body> </html> PHP Example 1
<html> <body> <?php if ($submit) { // process form $db = mysql_connect("localhost", "root"); mysql_select_db("mydb",$db); $sql = "INSERT INTO employees (first,last,address,position) VALUES ('$first','$last','$address','$position')"; $result = mysql_query($sql); echo "Thank you! Information entered.\n"; } else{ // display form ?> <form method="post" action="<?php echo $PHP_SELF?>"> First name:<input type="Text" name="first"><br> Last name:<input type="Text" name="last"><br> Address:<input type="Text" name="address"><br> Position:<input type="Text" name="position"><br> <input type="Submit" name="submit" value="Enter information"> </form> <?php } // end if ?> </body> </html> PHP Example 2
PHP-MYSQL PROGRAMMING MYSQL Commands CREATE TABLE tablename ( columnname typ modifiers, columnname typ modifiers, …..) SELECT fieldname1, fieldname2,.. FROM tablename WHERE criteria SELECT fieldname1, fieldname2,.. FROM tablename ORDER BY fieldname ASC DSC
PHP-MYSQL PROGRAMMING INSERT INTO tablename (fieldname1, fieldname2,…) VALUES (‘value1’, ‘value2’, … ) UPDATE tablename SET fieldname1=‘value1’, fieldname2=‘value2’ WHERE criteria DELETE FROM tablename WHERE criteria
CGI • Common Gateway Interface • Protocol to enable running programs on the web server • These programs produce HTML output which is sent to the client (browser) • Programs can be written in any language (most popular is PERL)
PERL • Practical Extraction and Report Language • Became popular with CGI programs • High level – rich and easy to use pattern matching, text processing operators • Lots of free PERL modules (packages) are available that make programming easy: • networking modules • Html/XMP parser, CGI modules • Extremely useful for developing automated pograms that surf the Internet
Automated Web Page Downloader #!/usr/local/bin/perl use LWP::UserAgent ; use HTML::TokeParser ; $options{"agent"} = "Mozilla/4.6 [en] (X11; I; SunOS 5.7 sun4u)"; my $agent = new LWP::UserAgent(%options); my $request = new HTTP::Request('GET' => $ARGV[0] ) ; my $response = $agent->request($request) ; if ( $response->is_success() ) { print($response->content()) ; } else { print("Error: " . $reponse->status_line() . "\n" ) ; die ; }
Server receives a request for a CGI program Server creates a new process to run the CGI program Server passes information to the program: via environment variables and standard input. CGI Life Cycle
CGI – Based Web Server Main Process Request for CGI1 Child process for CGI1 Child process for CGI2 Request for CGI2 Request for CGI1 Child process for CGI1