Initial objective:

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


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:

Get the course docs from 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:

Top in Thailand - 27 Philippines - 11

By operating system: IBM MVS IBM OS/400 32 Sun Solaris 29 IBM AIX 24 HP/UX ... no NT! But that's only 1997. In 2001 NT zoomed to the top.

AMA is one of the top 100 power users of IT. So many branches.

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:

Where can I find more information about this?

AMA's actually pretty good technically, but non-technical stuff suffers.

What is an operating system?

Computer system components

Abstract view of system components

> operating systems > computer hardware

Think about it. The system software should stay constant and the application software can change, so that you don't have to reboot every time you want to use a new application.

OS jokes

neanderthal technology, drag and drop, eunuch programmers, windows 95: 100% recycled macintosh OS... Cathy joke. lots of MS-bashing.


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

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

Non-resident programs

Loaded only when needed, 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

[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.


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.


single-user, single-tasking

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.


spinlocks - busywaiting for a semaphore that never comes blocking - resource starvation, deadlocks counting semaphores

classical problems of synchronization

bounded buffer


resource allocation graph