MIS: Introduction to Linux
CS: Theoretical concepts of operating systems
For us to be able to explore a little more in terms of the operating system

Introduction

10 - 11 years ago, this involved creating a little operating system, as part of CS.

Historical background: When MIS started growing, there was a need for the MIS OS to change a bit. Some of the technical background is not present in the MIS course itself. No computer architecture, no assembly language programming..

But CS students were getting shortchanged because teachers were using the same set of slides, and thus didn't go as in-depth.

CS students will finish in March, by schedule. One additional requirement could be a program, (no VB! ;) ) a paper.. basically, an additional project. The course itself will change, and the interaction between CS and MIS here I'd like to highlight. What is that interaction? And this is where I'd like to draw upon the strength of the CS. The strength of the CS is technical. The strength of the MIS is communication.

Helpdesk. In the helpdesk environment environment, you see both technical people and people who communicate with customers. First, there's a concept in IT management called "SLM" - service level management. One of the things that has to be provided for is a helpdesk. That helpdesk can either be telephone, fax, e-mail, chat, whatever. Realtime or offline.

What I'd like the MIS people to do is this. You're going to think of personal problems that you might have had. (No lovelife!) You're going to think of valid problems you've had with any operating system you've used. What I'd like to do is this: depending on the quality of your questions and validity of your questions, I'm going to give a point. CS students get to solve problems and earn points for that.

Later on, the MIS students will be the ones to answer the questions in front. Survivor-type. CS students get to ask questions, hehehe...

MIS: You're going to communicate the problem to the CS people in words they understand.

I'm sooooooooo happy.

Escalation - raising the problem to the next level. That's us.

Second interaction that Sir Olpoc might get to demonstrate is - Linux/NT integration through WebDAV.

Some things to take note of:

Surprise quizzes

One quiz a week

Two long exams

One of them is going to be during the week of December 7.

Get the course docs from aegis.ateneo.net/jolpoc/
courses->cs161

Textbooks, references

Performance analysis. If the user does not know how to answer your question, you're going to end up asking a set of questions. But you can also install a set of tools to benchmark computer performance in order to find the bottlenecks. (Performance Monitor or System Monitor under Windows 9x.)

One of the projects in the industry is benchmarking. Memory, CPU, disk.

We'll divide the class into 4 groups, and we'll each be responsible for a certain group. Whatever questions they have in their group, we should handle it. Egroups - Sir Olpoc will create the groups and moderate them. When they get stuck, we unstuck them.

If they're pushing their luck, then Sir Olpoc will step in and tell them to go search.

"How to use options in Unix" getopt

Another way to make the pace better is to report on a topic just to keep us moving along. System administration, maybe.

Where's the overlap with CS159? Processes are covered at the same time. They got delayed because of Linux, so if we help them do Linux faster, then we can cover more things. COS - command output sets or something like that. The programs are already online: just download and run.

We might find the class a little bit boring because we're going to follow the pace of the MIS, but if there are any questions, just shoot.

Cracking topics.

At least we're building content.

7 Nov 2001

Let's start off with this QuickTime movie taken during the time when Apple was relaunched.

Putting it into perspective

Microsoft on Apple
IBM supports Linux
Before, Unix systems ran only on proprietary hardware. The only Unices that ran on PCs back then: SCO Unix, FreeBSD. The old registration system was written in pure C, running on SCO Unix. They used automata.
How does Microsoft envision their operating system
Internet software that listens. In the future, everyone will have a say. Interaction. Simplification.

Traditionally, operating systems have been clunky. The domain of the techies. Microsoft's been trying to make things easier, but there's a flipside to this.

[Dilbert joke about voice recognition]
Magazine: MIS 100 - Top 100 IT users
Number of screens that the company has.
Not a lot of companies would like to give out IT budget details, because competitors would be able to tell what they're planning. In 1997 they conducted a profile of the top 100 IT users in Southeast Asia:

The point I'm trying to make here is that companies deal with multiple operating systems. This is the nature of the big companies here in the Philippines and in Southeast Asia. What are the issues that we need to address? Integration. What do you need to do to connect? to get them to talk to each other? Can you telnet from an Unix system to an NT system?

Windows adoption

Netware and Unix are getting replaced with NT. As of 1997 we already see a move from other operating systems to NT. That is the reason why if you look at today's MIS 100, somewhere near the top will be NT.

MIS issues:

maintenance of mainframe systems

NT vs UNIX

Migrating UNIX systems to NT systems
How do you migrate the data and the applications from Unix? Informix?

OS jokes

Definition

Think of the OS as the intermediary between the users and the resources. The users are the end-users or other processes which need a particular resource. Resources are files, memory, anything...

What's the nice thing about the OS? Black box. Just give it what you want to do, and it will do it without exposing the details.

Analogy: party-planner

Layer of abstraction between software and hardware.

The OS: Eases the Pain

Performs the interface task with the HW which shoud have been done by the user if the OS did not exist

high-level interface (GUI vs commandline)

the OS's capability to use the HW efficiently

Definition

collection of computer programs that make resources available to the user - productive, timely, efficient access

REMEMBER: Turn-around time

From the point of the view of the managers
From the moment you initiate a job request until the whole job finishes

REMEMBER: Response time

From the point of the view of the users
From the moment you click on a button until the computer responds

Another definition

Resource allocator - Manages and allocates resources

Control program - controls the execution of user programs and operations of the I/O devices

Kernel - the one program running at all times, and it's always in memory

Composition of an OS

Resident programs

Loaded in memory when you boot up the system
System-critical

Non-resident programs

Loaded only when needed
format.com, for example

OE vs OS - operating environment ( operating system )
Users interact with the OE. The OE passes it to the OS. The OS communicates with the hardware.

An example: DOS

COMMAND.COM

IO.SYS

MSDOS.SYS

Why study OS?

Efficient OS because

consume more resources than any other resources

most complex programs

necessary for any use of the computer

used by many users

Efficiency is measured through the following

functionality, userfriendliness

performance - time and utilization

convenience and cost

Now to put it into something concrete, we'll go to Unix. I'm going to log into Pusit in order to masure performance. There is a program in Linux called top. Top shows you the resource usage of each program, and after 5 seconds the display changes. There's actually a course "OS Tuning" which makes you watch top for three weeks and plot the memory usage. Why not one day? Because you need a span of a week in order to see typical use - backups, etc. 3 weeks establishes a pattern, and that pattern allows you to do some analysis based on performance.

History of operating systems

Traditionally we are not used to seeing the history of operating systems. History of computing usually deals with the history of hardware. Some of you have looked at the history of some of the programming languages - machine languages to OOP.

[Unix tree]

Spooling and buffering

Frequently-used cards were loaded into a disk. At this point, the OS needed I/O routines - routines which managed the input and output peripherals. The OS also needed to keep track of the data in the storage, so there needed to be file management. Now stacks of cards were called 'jobs'. A job is one or more decks of punch cards. These decks could be either program cards or data cards. Instead of having just one job at a time being executed by the operating system, the OS would now have a 'job pool' from which it could choose the job to execute next. That's where the term 'spool' comes. There is right now the ability for a system to read all of the input ahead of time, and that's where the CPU will choose the netx job. What some companies had was two computers. The satellite computer is responsible for reading all of the data and saving it on tapes, and the main computer is responsible for processing the data and returning the tapes to the satellite computer, which handles printing.

Now the OS manages more than just reading one card and executing it. Now it does file management and I/O.

Trivia: The first operating system was created by General Motors.

Sequential processing, even though spooled.

Multiprogramming (1960s - present)

I have a sequence of jobs (job1, job2, job3, job4) all of which are stored in the job pool, having been read previously by the satellite computer. What if a job needs to read data? It waits for data to be read from the tape, and the CPU is idle. So there has to be some way for the operating system to be much more proactive. Instead of the OS being at this point of time very passive, it needs to be active in the sense that if the CPU is idle, the OS must be able to get another job, leaving the data input in the background. So the next step here is multiprogramming. As of this stage the OS has already realized that the CPU is idle, because the card reader is slow and mechanical. Faster to access jobs from the hard disk, but the OS had been single-tasking...

What happens is: a lot of jobs which can be run and executed by the CPU are loaded into memory, and the CPU chooses which job to execute. Jobs are interrupted when the job does disk/tape access.

But still no user interaction... Think about it. User hits a key. Multiprogramming CPU must finish current job or wait for job I/O before processing the key.

Timesharing system (1970s - present)

In a timesharing environment, the OS is mature/specialized enough to monitor each and every activity or task that the user performs. Users feel that they have the whole system to themselves, but actually they're just sharing resources.

Card-playing analogy. Dealing 13 cards at once, or 1 card at a time. Interaction with system.

Before: job pool, but no need to schedule job
With timesharing: job scheduling

Cooking pasta, phone, and baby analogy.

A lot of hands-on.

In a time-sharing system, you are not always guaranteed that the response time is immediate. But sometimes you need _real-time_

Real-time operating system

There should always be a physical action after a signal is sent.

Furby

Distributed operating system

support communication between parts of a job
the OS has features and functionalities that allow the hardware to connect to the network and send/receive information.

Categorizations

single-user, single-tasking

DOS
single-user, multi-tasking

UNIX, Windows 95/98
multi-user, multi-tasking

UNIX, Windows NT, Windows 2000
distributed/network OS

Novell, Unix, Windows NT, Windows 2000

Desirable features of an OS?

Usability

Robustness

accept all valid input without error, and gracefully handle all invalid parts

Consistency

e.g., if "-" means options flags in one place, it means it in another. Key idea: conventions.

Proportionality

Forgiving

errors can be recovered from. reasonable error messages.
ogy for access of each device

Drivers can be added to the OS

Process Control Management

Process is an executing program

Memory management

Keeps track of memory usage

Keeps track of program queues which need to be processed by the CPU

Memory allocation

Scheduling

Allocating CPU time to the processes so that it will be fair and efficient

Secondary Storage

optimizes the completion of I/O tasks by using algorithms that reorder the requests for more efficient disk usage

Security and protection

l0pht, crack

Network services

Unix

Unix is case-sensitive and treats each event uniquely. For example, with the passwd command, the same cleartext will be encrypted differently. First 13 characters, generically.
relative path, absolute path
salt

CLASS MATTER

No class on Friday.
Posting later the first question of the week: Give me one irritating feature that you hate/love about Windows.

Assignment #1:

Activate your accounts and log into BALUT. The login names are xx999999, where xx is the first two letters of the family name, and 999999 is the ID number. The default password of each account is 12345 (ex. for jal de vera, password is 12devera345). Send me an email FROM your balut account indicating that you have activated it as such.

Assignment #2:

Download the Laboratory activity/exercise found in the website under Labs and Exercises called "My First UNIX commands" and submit the answers to the questions is the lab activity. This is to be submitted on Monday, class time.

classical problems of synchronization

deadlocks

resource allocation graph

I'd love to hear about any questions, comments, suggestions or links that you might have. Your comments will not be posted on this website immediately, but will be e-mailed to me first. You can use this form to get in touch with me, or e-mail me at [email protected] .

Page: 2001.Sem 2.C S 161

Updated: 2004-11-21

NOTE: ANTI-SPAM MEASURE NOW IN PLACE. Please answer the following question with the right number in order to send me your comment.