1 / 21

Distributed Operating Systems 66464 Fall 2013 Luai Malhis , Ph.D Required Textbook:

Distributed Operating Systems 66464 Fall 2013 Luai Malhis , Ph.D Required Textbook: Distributed Systems: Principles and Paradigms Andrew S. Tanenbaum and Maarten van Steen. Course Objectives. Identify the different components of distributed operating system and their functions.

baka
Télécharger la présentation

Distributed Operating Systems 66464 Fall 2013 Luai Malhis , Ph.D Required Textbook:

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Distributed Operating Systems66464 Fall 2013LuaiMalhis, Ph.D Required Textbook: Distributed Systems: Principles and Paradigms Andrew S. Tanenbaum and Maarten van Steen

  2. Course Objectives • Identify the different components of distributed operating system and their functions. • Analyze in details: • System definition and architecture • Client/server model and communications • Process migration • Fundamental issues in distributed operating systems • Application examples: Distributed File System design and implementation

  3. Grading policy • Midterm I 20% • Midterm II 20% • Homework 10% • Final Exam 50%

  4. Single Machine Operating System UNIX / LinuxReview

  5. UNIX History • The UNIX operating system was born in the late 1960s. It originally began as a one man project led by Ken Thompson of Bell Labs, and has since grown to become the most widely used operating system. • In the time since UNIX was first developed, it has gone through many different generations and even mutations. • Some differ substantially from the original version, like Berkeley Software Distribution (BSD) or Linux. • Others, still contain major portions that are based on the original source code. • An interesting and rather up-to-date timeline of these variations of UNIX can be found at http://www.levenez.com/unix/history.html.

  6. General Characteristics of UNIX as an Operating System (OS) • Multi-user & Multi-tasking - most versions of UNIX are capable of allowing multiple users to log onto the system, and have each run multiple tasks. This is now standard for most modern OSs. • Over 30 Years Old - UNIX is over 30 years old and it's popularity and use is still high. Over these years, many variations have spawned off and many have died off, but most modern UNIX systems can be traced back to the original versions. It has endured the test of time. For reference, Windows at best is half as old (Windows 1.0 was released in the mid 80s, but it was not stable or very complete until the 3.x family, which was released in the early 90s). • Large Number of Applications – there are an enormous amount of applications available for UNIX operating systems. They range from commercial applications such as CAD, Maya, WordPerfect, to many free applications. • Free Applications and Even a Free Operating System - of all of the applications available under UNIX, many of them are free. The compilers and interpreters that we use in most of the programming courses here at UMBC can be downloaded free of charge. Most of the development that in programming courses is done under the Unix/Linux OS. • Less Resource Intensive - in general, most UNIX installations tend to be much less demanding on system resources. In many cases, the old family computer that can barely run Windows is more than sufficient to run the latest version of Linux. • Internet Development - Much of the backbone of the Internet is run by UNIX servers. Many of the more general web servers run UNIX with the Apache web server - another free application.

  7. Parts of the UNIX OS • The Kernel - handles memory management, input and output requests, and program scheduling. Technically speaking, the kernel is the OS. It provides the basic software connection to the hardware. The kernel is very complex and deals with the inner workings of these things, and is beyond the scope of this course. • The Shell and Graphical User Interfaces (GUIs) - basic UNIX shells provides a “command line” interface which allows the user to type in commands. These commands are translated by the shell into something the kernel can comprehend, and then executed by the kernel. • The Built-in System Utilities - are programs that allow a user to perform tasks which involve complex actions. Utilities provide user interface functions that are basic to an operating system, but which are too complex to be built into the shell. Examples of utilities are programs that let us see the contents of a directory, move & copy files, remove files, etc... • Application Software & Utilities – these are not part of the operating system, per se. They are additional programs that are bundled with the OS distribution, or available separately. These can range from additional or different versions of basic utilities, to full scale commercial applications.

  8. Advantages of Unix • Unix is more flexible and can be installed on many different types of machines, including main-frame computers, supercomputers and micro-computers. • Unix is more stable and does not go down as often as Windows does, therefore requires less administration and maintenance. • Unix has greater built-in security and permissions features than Windows. • -Unix possesses much greater processing power than Windows. • - Unix is the leader in serving the Web. About 90% of the Internet relies on Unix operating systems running Apache, the world's most widely used Web server.

  9. Advantages Continue • Software upgrades from Microsoft often require the user to purchase new or more hardware or prerequisite software. That is not the case with Unix. • The mostly free or inexpensive open-source operating systems, such as Linux and BSD, with their flexibility and control, are very attractive to (aspiring) computer wizards. Many of the smartest programmers are developing state-of-the-art software free of charge for the fast growing "open-source movement”. • Unix also inspires novel approaches to software design, such as solving problems by interconnecting simpler tools instead of creating large monolithic application programs.

  10. UNIX Interfaces • There are really 2 means of connecting to UNIX • You can be sitting in front of a dual-bootable PC that you have booted into Linux and logged onto. All of your commands are then being run locally on that computer. When you logon in this manner you have a full GUI environment. • You can connect remotely to one of the UNIX servers (whether from home or at the labs). This is often how your projects are suggested to be developed as they are graded on those same servers. When you logon in this manner you have a command line (or text based) environment. You can also open up a command line on local lab machines as well.

  11. Linux vs. Windows • OS does not have to use a graphical interface. • The OS itself (the kernel) is incredibly small. • The GUI just another application (or set of applications) that can be installed and run on top the existing text-based OS. • File system differences. • Windows typically uses FAT32 or NTFS file systems. • Linux typically uses the ext2 or ext3 file systems • In much larger research and university environments, where file access is necessary across the network, something like Network File System (NFS) or the Andrew File System (AFS) is used. • Windows lists all drives separately (A:,C:,D:, etc…), with “My Computer” at the highest level. • UNIX starts its highest level at “/” and drives can be mounted anywhere underneath it.

  12. Programming Tools and Utilities Available under Linux • Text Editors • Xemacs • Emacs • Pico • vi • Compilers • C compiler - gcc • C++ compiler - g++ • Java compiler & Java Virtual Machine - javac & java • Debuggers • C / C++ debugger - gdb • Interpreters • Perl - perl • Tcl/Tk - tcl & wish • Miscellaneous • Web Browsers - Mozilla, Netscape, Firefox, and Lynx (lynx is text based) • Instant Messengers - Gaim • Email Pine

  13. Unix Shell / Command Line • The shell is an interpreter used to communicate with the OS interactively on the command line (CL)‏CL prompt> command … • There are Unix commands (same function in any shell) and shell built-in commands • Commands entered at the CLprompt have options and arguments 13 Introduction to Unix

  14. Basic Commands • pwd - print working directory • ls - list contents of directories • mkdir - make (create) new directories • cd - change the current directory • cp - copy files or directories • mv - move files or directories • rm - remove (delete) files or directories • cat - concatenate file contents • more/less - scroll file contents • file - show file type Introduction to Unix 14

  15. Command Help • Unix traditionally includes instructions and help files (manual pages) on most commands and API's and their options. To access a manpage: CL prompt>manfoo • For csh built-in commands: CL prompt>manbuiltin • Some commands have command line help (usage hints or --help)‏ Introduction to Unix 15

  16. Files, Directories, Special Characters • Files to care about • hidden (filenames begin with a dot, list with ls-a), e. g., user initialization, .login, .bashrc, .cshrc, … • global initialization, e. g., /etc/bashrc • devices • symbolic links • / = top root directory • A few special Unix shortcuts for file/directory names/paths: • ~ = expands word to your home directory path • ~username= home directory of any username • .= current directory • .. = parent directory Introduction to Unix 16

  17. File Permissions • Files/directories have an owner and a group • The owner can grant read/write/execute permissions to three groups (the user, the user's group, and all others on the system)‏ prompt>ls-l/home/username total 16 drwxr-xr-x 2 username group 8192 May 1 15:59 certs/ drwxr-xr-x 3 username group 8192 Sep 15 17:28 classes/ Introduction to Unix 17

  18. File Permissions • These permissions are modified by the chmodcommand, e. g. : CL prompt>chmodg+rxfile permits other users in the owner’s group to read and execute file Introduction to Unix 18

  19. Text Editors on Cluster • Fairly basic: Nano (http://www.nano-editor.org/)‏ • More advanced: Vi / Vim (http://www.vim.org/)‏ Emacs (http://www.gnu.org/software/emacs/)‏ • Create/edit a new file example.txt Introduction to Unix 19

  20. Processes and Multitasking • To run a program in the background, use the “&” character (or “^Z” followed by “bg”):prompt>myprogram & [1] 7895 • myprogram is now running in the background as process id (PID) 7895 • Whenever your process finishes, it will print “Done” to the console. Introduction to Unix 20

  21. Processes and Multitasking • To check on the status of your jobs running on the system, use the ps commandprompt>ps-a PID TTY TIME CMD 8095 pts/3 00:00:00 ps • You can get an expanded list by typingps agux, or by using the top command • Use uptime to check the load average (how hard system is working) on slowly responding machines Introduction to Unix 21

More Related