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
Introduction10 - 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
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.
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 perspectiveMicrosoft 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:
- Massive IT operations with large data centers
- Enormous networks and multiple OSes
- Military precision
- Most innovative of all IT users
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?
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.
- 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?
- UNIX and NT integration
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 hardwareThink 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 jokesneanderthal technology, drag and drop, eunuch programmers, windows 95: 100% recycled macintosh OS... Cathy joke. lots of MS-bashing.
DefinitionThink 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.
Layer of abstraction between software and hardware.
The OS: Eases the PainPerforms 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
Definitioncollection of computer programs that make resources available to the user - productive, timely, efficient access
REMEMBER: Turn-around timeFrom the point of the view of the managers From the moment you initiate a job request until the whole job finishes
REMEMBER: Response timeFrom the point of the view of the users From the moment you click on a button until the computer responds
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
Loaded in memory when you boot up the system System-critical
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
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
performance - time and utilization
convenience and costNow 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 systemsTraditionally 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.
Spooling and bufferingFrequently-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.
- 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?
Robustnessaccept all valid input without error, and gracefully handle all invalid parts
Consistencye.g., if "-" means options flags in one place, it means it in another. Key idea: conventions.
Proportionalitysimple, cheap and frequent things are easy. Also, expensive and disastrous things (rm *) are hard
Forgivingerrors 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
Keeps track of memory usage
Keeps track of program queues which need to be processed by the CPU
Allocating CPU time to the processes so that it will be fair and efficient
optimizes the completion of I/O tasks by using algorithms that reorder the requests for more efficient disk usage
Security and protectionl0pht, crack
UnixUnix 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
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 12
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.
semaphores:spinlocks - busywaiting for a semaphore that never comes blocking - resource starvation, deadlocks counting semaphores
classical problems of synchronizationbounded buffer
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] .