Introduction to Software Systems Unix C + GNU HTML Perl Python

Size: px
Start display at page:

Download "Introduction to Software Systems Unix C + GNU HTML Perl Python"

Transcription

1 Introduction to Software Systems Unix Comp-206 : Introduction to Software Systems Lecture Week 1 Joseph Vybihal Computer Science McGill University

2 Announcements Instructor coordinates Course outline Participation Web CT discussions, assignments, mail, lectures 2

3 Unix 3

4 Why COMP 206? Application programs are no longer created from a single programming language. Database languages, off the shelf libraries, and the internet has changed programming forever. This courses asks you to build a web store, a single application, made from:, CGI, Java, C,,, Bash and Unix! 4

5 Why COMP 206? No longer green screens and simple command-line prompts Windows & Apple Unix and Linux Minis & Mainframes 5 (also robots, POS real-time)?

6 Why COMP 206? How software inter-plays... Libraries Process inter-communication Networks Multiple languages Operating Systems How to use software tools... Team programming Debugging Code optimization Code generators The idea of a software SYSTEM... Single application Multiple languages Multiple tools Multiple operating systems Network connectivity Multiple hardware architectures 6

7 Official Course Description Comprehensive overview of programming in C, use of system calls and libraries, debugging and testing of code; use of developmental tools like make, version control systems.

8 My Course Description Introduction to Software Systems is a course about the various types of techniques and tools used to build software.... serves as your introduction to the C programming language, Unix operating system, and internte programming.... gives you tools to be more productive during your undergraduate studies. gives you the opportunity to develop complex integrated software projects. 8

9 Course Content The course will cover the following topics: Unix operating system Shell Scripting C Programming (and related techniques & tools)? C Libraries Debuggers and Profilers Source Control, CSS and CGI and Web scripting (not exactly in that order)? 9

10 Knowledge of Unix This course assumes you have some basic knowledge of Unix (and the school labs). login into your account, copying a file, editing a file, etc If you don't, I highly suggest you attend one of the SOCS Unix seminars, to be held in the Trottier Building, 3rd floor, Room 3120 (Lab 2). Check the SOCS web site for tutorial times We will also do our own tutorials and review in class 10

11 Part 1 What are Software Systems?

12 What is it? Software Systems Which are the systems? What systems do you think makeup a web site? A software system is The software development environment The software execution environment The application program system 12

13 Software Systems Development Environment System Compiler Library Code generators Version control and optimization software Execution Environment System Interpreters Operating Systems Network communication features Hardware available Number of CPUs Program System Compiled (some in C, some in Pascal)? Scripted (some in Unix, some in or )? Interpreted (some in, some in Java)? Inter-communication (network and OS provided)? How do they interplay? 13

14 A Software System Definition Unix A group of programs created to interact with one another to solve a common application goal. Examples of programs working together: An object instantiated from another program A system call to the OS A web request to a server 14

15 Software System Boundaries The location where one subsystem interacts with another subsystem. Think of this as an internet application Where is it? and How does it inter-communicate? 15

16 What is Software? Software is a collection of instructions (often grouped as functions and libraries) that allow a computer to complete a specific task. Although these instructions can be written in different languages, they are eventually converted to a machine language. 16

17 C C++ Java Fortran Ada N : 1 Assembler 1 : 1 Numbered codes (machine language)? Circuits Everything in the end is the same... 17

18 Computer Programming Computer Programming is the craft (art) of writing the computer instructions that accomplishes a specific task. The difficulty of computer programming depends heavily on the task itself and the tools that are used to help the programmer. One of the keys to being a successful programmer is knowing which tool to use in each different situation. Not all programming language were designed to do the same thing. 18

19 Name that Programming Unix Java C C++ Basic Ada Lisp Scheme Javascript AppleScript Ocaml D and so on... Language State their purpose... 19

20 Definition (strong form): A System A program constructed in such a way that it is complete in itself. It requires no external calls to other software. Internally, the system is composed of modules or objects that, like a system are complete in themselves, but provide public access methods that allow interconnections between modules/objects. Example: the compiling process, os environment, oo-programming 20

21 What is an Operating System? An operating system is a piece of software that allows us to interact with a computer without having to know the inner working of a computer. Its primary function is to manage the computer's resources. An operating system also provides us with libraries to interact with these resources. 21

22 Name that Operating System Dos Windows Solaris Linux FreeBSD BeOS FreeDos HP-UX AIX MacOs X What is speacial about them? 22

23 What is a Library? A library is a piece of software specially packaged to be used by other software. A library provides specific functionalities, thus avoiding the need for the programmer to build the functionalities him or herself. 23

24 Library Examples On Unix, the Standard IO library provides functionality to open files and write to them. Without it, a programmer would need to write code to use the hard disk itself in assembler. On Windows, DirectX allows a developer to write display graphics. Without it, a programmer would need to write code to access the video card directly. 24

25 Libraries and the OS From Compiler Or 3 rd party From OS Software Libraries Operating System Drivers Hardware High-level libraries (in C or assembler)? Low-level libraries (in assembler)? 25

26 Part 2 Run-time Environments To understand software systems, one must also appreciate and exploit the run-time environments applications execute within.

27 The Run-time Environment Software You program this You take advantage of this Libraries Operating System Drivers Hardware The run-time environment 27

28 The Development Environment The development environment Comparison Language Tools Compiler Software Libraries Operating System Drivers Hardware The run-time environment These may also come from the compiler or a third party. 28

29 Different run-time environments

30 Still important to know Unix Single CPU Single Process Examples: MSDOS, CPM, ProDOS, MiniUnix Properties: command-line prompt only one program runs at any time Architecture: Advantages: Direct hardware control Low OS security TSR Ability Real-time systems OS video drivers kernel interface User Space Zero Heap Run-time Stack Code Data C:>dir 30

31 Single CPU Multi-Process Examples: Windows, Unix, Linux, Mac OS Properties: command-line prompt or windowed interface more than one program can run at same time Architecture: Advantages: Spawning, Killing, status OS Hardware Services Inter-process communication OS ptr drivers kernel time slice To graphics card interface C:>dir User Space Heap Run-time Stack Code Data Heap Run-time Stack Code Data C:>dir Zero P1 P2 31

32 Multi-CPU Multi-Process Examples: Windows NT Family, Unix Pro Family Properties: command-line prompt or windowed interface more than one program can run at same time Schedules and divides processes between CPUs Architecture: Advantages: True Divide & Conquer Large programs / data Master / Worker processes OS ptr User Space Zero drivers kernel time slice interface CPU management Method 1: give a Pi to a CPUj for entire execution life Method 2: divide Pi into parts and share parts with CPUs Method 3: pool of CPUs time-sliced with pool of Pi s 32

33 Batch Processing Examples: AS400 (simulated in DOS, Windows and Unix)? Properties: Program execution is managed by a simple OS script language User activates script, then script takes over Advantages: Scripts are text files interpreted by the OS Pseudo-new OS commands Automate manual processes (backup)? Execution environment auto-setup Architecture: OS ptr User Space Zero drivers kernel time slice interface CPU management interpreter Setup OS environment: map drives, check hardware Setup program s execution environment: validate, copy files Run program multiple times for each input data set Clean up: cancel maps, delete temporary files, do backups 33

34 Distributed Processing Examples: Java,, and Properties: Uses a network to share resources and execute processes on different computers Architecture: PC / Server interface PC / Server run-time clients Advantages: Not CPU dependent Spawn process across network Access data across network Server / Client architecture Master / Worker architecture 34

35 Code Migration Processing Examples: Experimental Properties: Process Migration When you execute a program on your PC and your PC is too slow, or too busy or does not have enough memory the OS will automatically use the network to download your program to another computer to execute on (invisible to you) recursively implemented. Object Migration Advantages: The pseudo-infinite computer Same idea but with each object or module of your program. 35

36 Questions How do we code to take advantage of these run-time environments? Single process Multi-process Multi-CPU Distributed processing What features do we have access to in one environment and not the other? 36

37 On your own At Home

38 Try the following Using your two most favorite operating system environments, identify the libraries and tools provided by each one. Then answer the following: Which one gives you better libraries and tools? Is the development environment optimized for a particular type of application programming? After compiling a program, which development environment generates big and heavy code (measured in bytes after compiling)? Does this effect your judgement on which is a better development environment or effect your view on its usefulness? Is GUI or command-line better? Why? 38

39 Part 3 Software Development Techniques

40 Integrated Programming Unix Microsoft Visual Programming Borland Builder and Studio Environments (Borland Demo)? Free non-integrated versions on the web (just google it)? Eclipse (this is installed in the Trottier labs)? Windowed environment that permits you to manage and compile many source files at once. Handles access control and version control. Handles modification management as well. demo 40

41 Command-line Programming Unix Command-line prompt Environments Individual programs: Editor program Compiler program Debugger program Project builder program Our course focuses on this. demo 41

42 Single Source File Programming The entire program exists within a single source file There is only a single user File is stored in a single directory Manipulated using (command-line programming): vi filename gcc filename > error_messages a.out more error_messages 42

43 Multiple Source File Programming Each source file is organized around an object or a module Assumes multiple programmers Issues: Access Control (who can edit the file)? Version Control (access to older/differnt version of code) Manipulated using: vi filename_i make project > error_messages a.out more error_messages 43

44 Source File Management Techniques

45 Manual Directory Organization Single Programmer Project - Directory / Folder Structure Projects Project1 Archive Documents Backup Build1 Zip old builds increment Description of what needs to be programmed : Project2 Archive - long-term backup (history)? Backup - short-term temporary files 45

46 Manual Directory Organization Team Programming Project - Directory / Folder Structure Projects Project1 Project2 : Development Programmer A Archive Documents Backup Build1 Programmer B : Integration Archive Documents Logs Build Zip old builds increment Merge, one programmer at a time, only changed files. After the merge, must compile and make sure the entire project still runs correctly. This is either the responsibility of the programmer who did the merge or a special integration programmer. 46

47 Modifications Management (Writing code so that it is easier to determine what went wrong in a program and how we might fix it)?

48 Comments as Documentation Why write a programmer s manual when you can do that through comments? Per method, function, object, source file // Method Name: Version: // Programmer : // Created : // Purpose : // Inputs : // Outputs : // Notes : // Modification Log // ============= // DATE NAME REASON/DESCRIPTION In-line comments (descriptive and flow)? 48

49 // Step 1: Get input from the user for(int I = 0; I<10; I++) scanf( %d, ages[i]); // Step 2: Sort values using bubble sort In-line flow comments Blank lines, to put concepts into block and help readability for(int I=0; I<10; I++)? { Good variable name for (int j=0; j<10; j++)? { if (ages[i]>ages[j]) swap(&ages[i], &ages[j]); // swap trades the values } } // Step 3: Print out the results to the screen Constant indentation for(int I=0. I<10; I++) printf( %d\n,ages[i]); In-line explanations 49

50 Errors to fix Log Files Filename, description, line number Integration history Date, by who, problems/fixes/comments Validation testing Filename/object/form, what to do, expected result 50

51 Automated Project Management (later in course)? Project / Make files RCS Revision Control Systems Modifications Management Techniques 51

52 Part 4 Operating Systems (the OS)?

53 Question What is an OS? What does it do? Does is have responsibilities? How does it do it (how is it programmed)? 53

54 The Operating System 54

55 Services provided by the OS Process management Allows applications to run simultaneously Memory management Manages the allocation of memory Disk and file systems Manages the writing to disk of files. Networking Allows inter-computer communication. Security Provides authentication, privacy and protection. Device Drivers Allows the use of hardware in a generic fashion. Graphic User Interface (and command-line interface)? Provides a visual interface to interact with the computer. 55

56 Process management The first generation of operating systems only allowed one process to run at a time. A multi-tasking operating system allows multiple task to run at a time. Most computers only have 1 CPU, the multiple task must share this CPU. Most often, the CPU will time-slice the task, so they get a fair amount of CPU time. Computers with multiple CPU can run multiple task at a time. This introduces numerous concurrency and coherence challenges. Any Concurrency examples? 56

57 Memory Management At the hardware level, computer memory is a collection of 0 and 1, stored in volatile silicon chips. At the operating system, computer memory is an array of bytes, where data can be store and later retrieved. The operating system is responsible for allocating blocks of memory to the different processes. When the OS runs out of memory, it can use the hard disk to temporarily store blocks of memory that it does not often use. Do you know what the standard memory organization in the computer is? 57

58 Disk and file systems At the lowest level, a computer disk is a collection of 0 or 1 stored on a magnetic or optical disk. This hardware has no understanding of files and directory. The operating system provides file systems, which describe how files and directory should be stored on the disk. Each operating system feature different file system: Windows : Fat32, NTFS Linux: EXT2, EXT3, XFS, Reiser, etc MacOS X: HFS+ Describe the standard diskette organization, what about CDs? 58

59 Networking At the hardware level, networking is the exchange of 0 and 1 over a communication channel. A network protocol describe how data should be transformed (and encapsulated) before being sent over the network. The OS provides the necessary tool for a computer to join a network and transmit(receive) data over this network. The most common network protocol is TCP/IP. What should the computer do if the channel is noisy? 59

60 Security Operating Systems feature authentication systems which control who can use a computer. They also offer privacy features on many levels: A user/administrator can define which files can be used by which users. A process should not be able to access the memory block of another process. A good operating system will also monitor itself to prevent action which could compromise it s stability: A process should not be able to delete a file which is currently in use. Certain spaces in memory should never be overwritten What should be secured in a public computer? 60

61 Device Drivers Each device connected to the computer has their own different way of communicating with the computer. Device drivers are small pieces of software which allow an external device to communicate with the computer in a generic fashion. Without device drivers, an application would need to deal separately with all the different external hardware it supports. How does one communicate with: the screen, keyboard, or printer? 61

62 Abstraction Unix Graphic User Interface A graphic user interface (also known as a GUI) is a piece of software which allow interaction with the computer using visual components (icons, buttons, scrollbars, etc). These visual components are often referred to as widgets. A GUI also provides libraries which allow the development of new software with these visual components. Before GUIs were distributed with operating system, interaction with the OS was often achieved through a CLI (command-line interface). 62

63 Open vs. Closed Operating Unix Systems An OS is closed (or proprietary) when it owned by a single company. It is often designed to work on a single kind of hardware. An OS it open (or non proprietary) if no single company is responsible for its development. Since many people can work on the code, it is often available on different hardware platforms. 63

64 Open FreeDos Linux FreeBSD OpenBSD Solaris Open or Closed Closed MS Dos MS Windows HP-UX AIX 64

65 On Your Own At Home

66 Try the following Get into a team of 3 to 4 people and think of a way to develop code with multiple programmers that would minimize the need for programmers to modify each other s code. What disciplines would your team of programmers need to follow to insure that this works? What files or logs would you need to keep? Is your technique hard to do? If so, how can you make it easier to work with? 66

Course and Unix Intro

Course and Unix Intro Course and Unix Intro Comp-206 : Introduction to Software Systems Lecture 1 Alexandre Denault Computer Science McGill University Fall 2006 Instructor Alexandre Denault Graduate student, working in the

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

SOFTWARE ARCHITECTURE

SOFTWARE ARCHITECTURE 1 SOFTWARE ARCHITECTURE Tatsuya Hagino hagino@sfc.keio.ac.jp Slide URL https://vu5.sfc.keio.ac.jp/slide/ 2 Lecture Slide System Please access to: https://vu5.sfc.keio.ac.jp/slide/ Select: Software Architecture

More information

Introduction to Operating Systems

Introduction to Operating Systems Introduction to Operating Systems Jinkyu Jeong (jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu EEE3052: Introduction to Operating Systems, Fall 2017, Jinkyu Jeong

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls (important!) Types of System Calls (important!) System

More information

Chapter 2: Operating-System Structures. Chapter 2: Operating-System Structures. Objectives. Operating System Services

Chapter 2: Operating-System Structures. Chapter 2: Operating-System Structures. Objectives. Operating System Services Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

Objectives. Chapter 2: Operating-System Structures. 2.1 Operating System Services

Objectives. Chapter 2: Operating-System Structures. 2.1 Operating System Services Objectives Chapter 2: Operating-System Structures To describe the services an operating system provides to users, processes, and other systems To discuss the various ways of structuring an operating system

More information

Chapter 2 Operating-System Structures

Chapter 2 Operating-System Structures This chapter will discuss the following concepts: 2.1 Operating System Services 2.2 User Operating System Interface 2.3 System Calls 2.4 System Programs 2.5 Operating System Design and Implementation 2.6

More information

Lecture 2 Operating System Structures (chapter 2)

Lecture 2 Operating System Structures (chapter 2) Bilkent University Department of Computer Engineering CS342 Operating Systems Lecture 2 Operating System Structures (chapter 2) Dr. İbrahim Körpeoğlu http://www.cs.bilkent.edu.tr/~korpe 1 References The

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Silberschatz, Galvin and Gagne 2009 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System

More information

Chapter 2: Operating-System Structures. Operating System Concepts Essentials 8 th Edition

Chapter 2: Operating-System Structures. Operating System Concepts Essentials 8 th Edition Chapter 2: Operating-System Structures Operating System Concepts Essentials 8 th Edition Silberschatz, Galvin and Gagne 2011 Chapter 2: Operating-System Structures Operating System Services User Operating

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures 2.1 Silberschatz, Galvin and Gagne 2009 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System

More information

Chapter 2: Operating-System

Chapter 2: Operating-System Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services! User Operating System Interface! System Calls! Types of System Calls! System Programs! Operating

More information

INTRODUCTION TO OPERATING SYSTEMS. Jo, Heeseung

INTRODUCTION TO OPERATING SYSTEMS. Jo, Heeseung INTRODUCTION TO OPERATING SYSTEMS Jo, Heeseung TODAY'S TOPICS What is OS? History of OS 2 OPERATING SYSTEM? Computer systems internals 3 WHY DO WE LEARN OS? To graduate? To make a better OS or system Functionality

More information

Downloaded from various sources on the NET

Downloaded from various sources on the NET Overview Computers. Hardware components of a Computer. Purpose and functions of computer operating systems. Evolution of computer operating systems. Operating systems available today. Downloaded from various

More information

Chapter 2: System Structures

Chapter 2: System Structures Chapter 2: System Structures Chapter 2: System Structures 2.1 Operating-System Services 2.2 User and Operating-System Interface 2.3 System Calls 2.4 Types of System Calls 2.5 System Programs 2.6 Operating-System

More information

Operating System Services

Operating System Services CSE325 Principles of Operating Systems Operating System Services David Duggan dduggan@sandia.gov January 22, 2013 Reading Assignment 3 Chapter 3, due 01/29 1/23/13 CSE325 - OS Services 2 What Categories

More information

Introduction to Operating Systems. Jo, Heeseung

Introduction to Operating Systems. Jo, Heeseung Introduction to Operating Systems Jo, Heeseung Today's Topics What is OS? History of OS 2 Operating System? Computer systems internals 3 Why do we learn OS? To graduate? To make a better OS or system Functionality

More information

Computer Principles and Components 1

Computer Principles and Components 1 Computer Principles and Components 1 Course Map This module provides an overview of the hardware and software environment being used throughout the course. Introduction Computer Principles and Components

More information

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edit9on Chapter 2: Operating-System Structures Operating System Concepts 9 th Edit9on Silberschatz, Galvin and Gagne 2013 Objectives To describe the services an operating system provides to users, processes, and

More information

Chapter 2: System Structures. Operating System Concepts 9 th Edition

Chapter 2: System Structures. Operating System Concepts 9 th Edition Chapter 2: System Structures Silberschatz, Galvin and Gagne 2013 Chapter 2: System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs

More information

Operating Systems. Designed and Presented by Dr. Ayman Elshenawy Elsefy

Operating Systems. Designed and Presented by Dr. Ayman Elshenawy Elsefy Operating Systems Designed and Presented by Dr. Ayman Elshenawy Elsefy Dept. of Systems & Computer Eng.. AL-AZHAR University Website : eaymanelshenawy.wordpress.com Email : eaymanelshenawy@yahoo.com Reference

More information

Introduction to Linux

Introduction to Linux Introduction to Linux Prof. Jin-Soo Kim( jinsookim@skku.edu) TA Sanghoon Han(sanghoon.han@csl.skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Announcement (1) Please come

More information

OPERATING SYSTEMS. Prescribed Text Book Operating System Principles, Seventh Edition By Abraham Silberschatz, Peter Baer Galvin and Greg Gagne

OPERATING SYSTEMS. Prescribed Text Book Operating System Principles, Seventh Edition By Abraham Silberschatz, Peter Baer Galvin and Greg Gagne OPERATING SYSTEMS Prescribed Text Book Operating System Principles, Seventh Edition By Abraham Silberschatz, Peter Baer Galvin and Greg Gagne OVERVIEW An operating system is a program that manages the

More information

CS 300 Data Structures

CS 300 Data Structures CS 300 Data Structures Introduction 1 Topics Data Structures Linux C Programming Software Development Tools Software Development Methods 2 UNIX/Linux/GNU UNIX is an Operating System (OS) 1969 at Bell Labs

More information

Chapter 2. Operating-System Structures

Chapter 2. Operating-System Structures Chapter 2 Operating-System Structures 2.1 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

CS307: Operating Systems

CS307: Operating Systems CS307: Operating Systems Chentao Wu 吴晨涛 Associate Professor Dept. of Computer Science and Engineering Shanghai Jiao Tong University SEIEE Building 3-513 wuct@cs.sjtu.edu.cn Download Lectures ftp://public.sjtu.edu.cn

More information

COMP 250. Lecture 36 MISC. - beyond COMP final exam comments

COMP 250. Lecture 36 MISC. - beyond COMP final exam comments COMP 250 Lecture 36 MISC - beyond COMP 250 - final exam comments Dec 5, 2016 1 202 Intro Program MATH (prereqs for many upper level COMP courses) 206 Software Systems 273 Computer Systems 250 Intro Comp

More information

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System Calls System Programs Operating System

More information

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed.

CHAPTER 2: SYSTEM STRUCTURES. By I-Chen Lin Textbook: Operating System Concepts 9th Ed. CHAPTER 2: SYSTEM STRUCTURES By I-Chen Lin Textbook: Operating System Concepts 9th Ed. Chapter 2: System Structures Operating System Services User Operating System Interface System Calls Types of System

More information

Introduction to Operating Systems. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Introduction to Operating Systems. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University Introduction to Operating Systems Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Today s Topics What is OS? History of OS 2 What is OS? (1) Application

More information

CS370 Operating Systems

CS370 Operating Systems CS370 Operating Systems Colorado State University Yashwant K Malaiya Fall 2016 Lecture 5 Slides based on Text by Silberschatz, Galvin, Gagne Various sources 1 1 User Operating System Interface - CLI CLI

More information

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition

Chapter 2: Operating-System Structures. Operating System Concepts 9 th Edition Chapter 2: Operating-System Structures Silberschatz, Galvin and Gagne 2013 Chapter 2: Operating-System Structures Operating System Services User Operating System Interface System Calls Types of System

More information

C H A P T E R 1. Introduction to Computers and Programming

C H A P T E R 1. Introduction to Computers and Programming C H A P T E R 1 Introduction to Computers and Programming Topics Introduction Hardware and Software How Computers Store Data How a Program Works Using Python Computer Uses What do students use computers

More information

CS420: Operating Systems. OS Services & System Calls

CS420: Operating Systems. OS Services & System Calls OS Services & System Calls James Moscola Department of Engineering & Computer Science York College of Pennsylvania Based on Operating System Concepts, 9th Edition by Silberschatz, Galvin, Gagne Operating

More information

Operating System: Chap2 OS Structure. National Tsing-Hua University 2016, Fall Semester

Operating System: Chap2 OS Structure. National Tsing-Hua University 2016, Fall Semester Operating System: Chap2 OS Structure National Tsing-Hua University 2016, Fall Semester Outline OS Services OS-Application Interface OS Structure Chapter2 OS-Structure Operating System Concepts NTHU LSA

More information

Introduction to Computer Systems and Operating Systems

Introduction to Computer Systems and Operating Systems Introduction to Computer Systems and Operating Systems Minsoo Ryu Real-Time Computing and Communications Lab. Hanyang University msryu@hanyang.ac.kr Topics Covered 1. Computer History 2. Computer System

More information

Operating System Services. User Services. System Operation Services. User Operating System Interface - CLI. A View of Operating System Services

Operating System Services. User Services. System Operation Services. User Operating System Interface - CLI. A View of Operating System Services Operating System Services One set of services for users The other set of services for system operations Operating Systems Structures Notice: This set of slides is based on the notes by Professor Perrone

More information

Operating Systems CS3502 Spring 2018

Operating Systems CS3502 Spring 2018 Operating Systems CS3502 Spring 2018 Presented by Dr. Guoliang Liu Department of Computer Science College of Computing and Software Engineering Kennesaw State University Computer Systems See Appendix G

More information

Operating System Architecture. CS3026 Operating Systems Lecture 03

Operating System Architecture. CS3026 Operating Systems Lecture 03 Operating System Architecture CS3026 Operating Systems Lecture 03 The Role of an Operating System Service provider Provide a set of services to system users Resource allocator Exploit the hardware resources

More information

ELEC 377 Operating Systems. Week 1 Class 2

ELEC 377 Operating Systems. Week 1 Class 2 Operating Systems Week 1 Class 2 Labs vs. Assignments The only work to turn in are the labs. In some of the handouts I refer to the labs as assignments. There are no assignments separate from the labs.

More information

Operating Systems Concepts

Operating Systems Concepts Operating Systems Concepts Introduction Operating System (OS) An Operating System is the layer of software that manages a computer s resources for its users and their applications. It abstracts the use

More information

Today. Operating System Evolution. CSCI 4061 Introduction to Operating Systems. Gen 1: Mono-programming ( ) OS Evolution Unix Overview

Today. Operating System Evolution. CSCI 4061 Introduction to Operating Systems. Gen 1: Mono-programming ( ) OS Evolution Unix Overview Today CSCI 4061 Introduction to s Instructor: Abhishek Chandra OS Evolution Unix Overview Unix Structure Shells and Utilities Calls and APIs 2 Evolution How did the OS evolve? Generation 1: Mono-programming

More information

The Computer System. Hardware = Physical Computer. Software = Computer Programs. People = End Users & Programmers. people

The Computer System. Hardware = Physical Computer. Software = Computer Programs. People = End Users & Programmers. people The Computer System Hardware = Physical Computer The equipment associated with a computer system. hardware software people The set of instructions that tell a computer what to do. Use the power of the

More information

INTRODUCTION TO THE COURSE

INTRODUCTION TO THE COURSE 1 INTRODUCTION TO THE COURSE KOM3191 Object-Oriented Programming 2 Outline Computer Organization Machine Languages, Assembly Languages and High-Level Languages History of C++ C++ Development Environment

More information

CST Algonquin College 2

CST Algonquin College 2 Partitions Lab due dates: Labs are due as specified usually on Page1 of the Lab document Lab due dates are expressed as: 10 min before the end of the lab period during a certain week There is a grace period

More information

CSC 453 Operating Systems

CSC 453 Operating Systems CSC 453 Operating Systems Lecture 3: Operating-System Structures Operating System Components Operating systems are large and complex - the only way to manage such a project is to divide it into smaller

More information

Unix API Books. Linux Kernel Books. Assignments and Exams. Grading for CSC 256. Operating Systems 8/31/2018. CSC 256/456 Fall

Unix API Books. Linux Kernel Books. Assignments and Exams. Grading for CSC 256. Operating Systems 8/31/2018. CSC 256/456 Fall Prerequisites CSC 2/456: Operating s CSC 252 or equivalent C/C++ programming experience on Unix systems Instructor: Sandhya Dwarkadas TAs: Zhuojia Shen, Mohsen Mohammadi 8/31/2018 CSC 2/456 1 2 Meaning

More information

Chapter 2: Operating-System Structures. Operating System Concepts 8 th Edition

Chapter 2: Operating-System Structures. Operating System Concepts 8 th Edition Chapter 2: Operating-System Structures Operating System Concepts 8 th Edition Silberschatz, Galvin and Gagne 2009 Chapter 2: Operating-System Structures Different Services of Operating System. System Calls-

More information

CSE 4/521 Introduction to Operating Systems

CSE 4/521 Introduction to Operating Systems CSE 4/521 Introduction to Operating Systems Lecture 3 Operating Systems Structures (Operating-System Services, User and Operating-System Interface, System Calls, Types of System Calls, System Programs,

More information

Topics. Hardware and Software. Introduction. Main Memory. The CPU 9/21/2014. Introduction to Computers and Programming

Topics. Hardware and Software. Introduction. Main Memory. The CPU 9/21/2014. Introduction to Computers and Programming Topics C H A P T E R 1 Introduction to Computers and Programming Introduction Hardware and Software How Computers Store Data Using Python Introduction Computers can be programmed Designed to do any job

More information

C Compilation Model. Comp-206 : Introduction to Software Systems Lecture 9. Alexandre Denault Computer Science McGill University Fall 2006

C Compilation Model. Comp-206 : Introduction to Software Systems Lecture 9. Alexandre Denault Computer Science McGill University Fall 2006 C Compilation Model Comp-206 : Introduction to Software Systems Lecture 9 Alexandre Denault Computer Science McGill University Fall 2006 Midterm Date: Thursday, October 19th, 2006 Time: from 16h00 to 17h30

More information

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture Last Class: OS and Computer Architecture System bus Network card CPU, memory, I/O devices, network card, system bus Lecture 4, page 1 Last Class: OS and Computer Architecture OS Service Protection Interrupts

More information

Today. Operating System Evolution. CSCI 4061 Introduction to Operating Systems. Gen 1: Mono-programming ( ) OS Evolution Unix Overview

Today. Operating System Evolution. CSCI 4061 Introduction to Operating Systems. Gen 1: Mono-programming ( ) OS Evolution Unix Overview Today CSCI 4061 Introduction to s Instructor: Abhishek Chandra OS Evolution Unix Overview Unix Structure Shells and Utilities Calls and APIs 2 Evolution How did the OS evolve? Dependent on hardware and

More information

Outline. Threads. Single and Multithreaded Processes. Benefits of Threads. Eike Ritter 1. Modified: October 16, 2012

Outline. Threads. Single and Multithreaded Processes. Benefits of Threads. Eike Ritter 1. Modified: October 16, 2012 Eike Ritter 1 Modified: October 16, 2012 Lecture 8: Operating Systems with C/C++ School of Computer Science, University of Birmingham, UK 1 Based on material by Matt Smart and Nick Blundell Outline 1 Concurrent

More information

Introduction to Computer Systems

Introduction to Computer Systems Introduction to Computer Systems Today: Welcome to EECS 213 Lecture topics and assignments Next time: Bits & bytes and some Boolean algebra Fabián E. Bustamante, Spring 2010 Welcome to Intro. to Computer

More information

Vi & Shell Scripting

Vi & Shell Scripting Vi & Shell Scripting Comp-206 : Introduction to Week 3 Joseph Vybihal Computer Science McGill University Announcements Sina Meraji's office hours Trottier 3rd floor open area Tuesday 1:30 2:30 PM Thursday

More information

Introduction to Computer Systems

Introduction to Computer Systems Introduction to Computer Systems Today:! Welcome to EECS 213! Lecture topics and assignments Next time:! Bits & bytes! and some Boolean algebra Fabián E. Bustamante, 2007 Welcome to Intro. to Computer

More information

31268_WEB SYSTEMS LECTURE 1. Operating Systems Part 1

31268_WEB SYSTEMS LECTURE 1. Operating Systems Part 1 31268_WEB SYSTEMS LECTURE 1 Operating Systems Part 1 What is an operating system? - A piece of software that sits between all programs and the computer s hardware - Manages computer - Runs programs - Interface

More information

What are some common categories of system calls? What are common ways of structuring an OS? What are the principles behind OS design and

What are some common categories of system calls? What are common ways of structuring an OS? What are the principles behind OS design and What are the services provided by an OS? What are system calls? What are some common categories of system calls? What are the principles behind OS design and implementation? What are common ways of structuring

More information

TDDI04, K. Arvidsson, IDA, Linköpings universitet Operating System Structures. Operating System Structures Overview. Operating System Services

TDDI04, K. Arvidsson, IDA, Linköpings universitet Operating System Structures. Operating System Structures Overview. Operating System Services TDDI04 Concurrent Programming, Operating Systems, and Real-time Operating Systems Operating System Structures [SGG7] Chapter 2 Copyright Notice: The lecture notes are mainly based on Silberschatz s, Galvin

More information

CMPSC 311- Introduction to Systems Programming Module: Systems Programming

CMPSC 311- Introduction to Systems Programming Module: Systems Programming CMPSC 311- Introduction to Systems Programming Module: Systems Programming Professor Patrick McDaniel Fall 2015 WARNING Warning: for those not in the class, there is an unusually large number of people

More information

Version Control with Git

Version Control with Git Version Control with Git Methods & Tools for Software Engineering (MTSE) Fall 2017 Prof. Arie Gurfinkel based on https://git-scm.com/book What is Version (Revision) Control A system for managing changes

More information

Introduction to Operating Systems. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Introduction to Operating Systems. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University Introduction to Operating Systems Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Why OS? 2 What is an OS? Software that converts hardware into

More information

Introduction to Operating Systems (Part II)

Introduction to Operating Systems (Part II) Introduction to Operating Systems (Part II) Amir H. Payberah amir@sics.se Amirkabir University of Technology (Tehran Polytechnic) Amir H. Payberah (Tehran Polytechnic) Introduction 1393/6/24 1 / 45 Computer

More information

Operating-System Structures

Operating-System Structures Operating-System Structures System Components Operating System Services System Calls System Programs System Structure System Design and Implementation System Generation 1 Common System Components Process

More information

Lecture 1 - Introduction (Class Notes)

Lecture 1 - Introduction (Class Notes) Lecture 1 - Introduction (Class Notes) Outline: How does a computer work? Very brief! What is programming? The evolution of programming languages Generations of programming languages Compiled vs. Interpreted

More information

! Learn how to think like a computer scientist. ! Learn problem solving. ! Read and write code. ! Understand object oriented programming

! Learn how to think like a computer scientist. ! Learn problem solving. ! Read and write code. ! Understand object oriented programming 1 TOPIC 1 INTRODUCTION TO COMPUTER SCIENCE AND PROGRAMMING Topic 1 Introduction to Computer Science and Programming Notes adapted from Introduction to Computing and Programming with Java: A Multimedia

More information

Module 1 Introduction/OS Overview

Module 1 Introduction/OS Overview Module 1 Introduction/OS Overview Reading: Chapter 1 and 2 (Silberchatz) Objective: Quick overview of computer system organization the processor (CPU), memory, and input/output, architecture and general

More information

Operating-System Structures

Operating-System Structures Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 3.1 Sana a University,

More information

OPERATING SYSTEMS: Lesson 1: Introduction to Operating Systems

OPERATING SYSTEMS: Lesson 1: Introduction to Operating Systems OPERATING SYSTEMS: Lesson 1: Introduction to Jesús Carretero Pérez David Expósito Singh José Daniel García Sánchez Francisco Javier García Blas Florin Isaila 1 Why study? a) OS, and its internals, largely

More information

Chapter 1. Introduction to Computers and Java Objects. Background information. » important regardless of programming language. Introduction to Java

Chapter 1. Introduction to Computers and Java Objects. Background information. » important regardless of programming language. Introduction to Java Chapter 1 Introduction to Computers and Java Objects Background information» important regardless of programming language Introduction to Java Chapter 1 Java: an Introduction to Computer Science & Programming

More information

Memory Management 9th Week

Memory Management 9th Week Department of Electrical Engineering and Information Technology Faculty of Engineering Universitas Gadjah Mada, Indonesia Operating System - TIF 206 Memory Management 9th Week Sunu Wibirama Copyright 2011

More information

Chapter 3: Operating-System Structures

Chapter 3: Operating-System Structures Chapter 3: Operating-System Structures System Components Operating System Services System Calls System Programs System Structure Virtual Machines System Design and Implementation System Generation 3.1

More information

Computer chip: A very small pieces of silicon or other semi-conducting material onto which integrated circuits are embedded Circuit board: A thin

Computer chip: A very small pieces of silicon or other semi-conducting material onto which integrated circuits are embedded Circuit board: A thin INTRODUCTION We can divide the parts that make up a computer into three broad categories or subsystem: the central processing unit (CPU), the main memory, and the input/output subsystem. The next three

More information

Scientific Computing

Scientific Computing Scientific Computing Martin Lotz School of Mathematics The University of Manchester Lecture 1, September 22, 2014 Outline Course Overview Programming Basics The C++ Programming Language Outline Course

More information

Technical concepts. Some basics of computers today. Comp 399

Technical concepts. Some basics of computers today. Comp 399 Technical concepts Some basics of computers today. Comp 399 Admin Anyone new?. http://www.cnn.com/2013/07/12/tech/social-media http://tv.msnbc.com/2013/08/13/pre-trial-hearings- Locard's Exchange Principle

More information

Programming 1. Lecture 1 COP 3014 Fall August 28, 2017

Programming 1. Lecture 1 COP 3014 Fall August 28, 2017 Programming 1 Lecture 1 COP 3014 Fall 2017 August 28, 2017 Main Components of a computer CPU - Central Processing Unit: The brain of the computer. ISA - Instruction Set Architecture: the specific set of

More information

assembler Machine Code Object Files linker Executable File

assembler Machine Code Object Files linker Executable File CSCE A211 Programming Intro What is a Programming Language Assemblers, Compilers, Interpreters A compiler translates programs in high level languages into machine language that can be executed by the computer.

More information

Computer Software A computer contains two major sets of tools, software and hardware. Software is generally divided into Systems software and

Computer Software A computer contains two major sets of tools, software and hardware. Software is generally divided into Systems software and Computer Software A computer contains two major sets of tools, software and hardware. Software is generally divided into Systems software and Applications software. Systems software provides infrastructure

More information

Introduction to PC Operating Systems

Introduction to PC Operating Systems Introduction to PC Operating Systems Operating System Concepts 8th Edition Written by: Abraham Silberschatz, Peter Baer Galvin and Greg Gagne John Wiley & Sons, Inc. ISBN: 978-0-470-12872-5 Chapter 2 Operating-System

More information

CSCA0201 FUNDAMENTALS OF COMPUTING. Chapter 6 Operating Systems

CSCA0201 FUNDAMENTALS OF COMPUTING. Chapter 6 Operating Systems CSCA0201 FUNDAMENTALS OF COMPUTING Chapter 6 Operating Systems 1 1. Operating Systems 2. Types of Operating System 3. Major Functions 4. User Interface 5. Examples of Operating System 2 Operating Systems

More information

Lecture 2 - Fundamental Concepts

Lecture 2 - Fundamental Concepts Lecture 2 - Fundamental Concepts Instructor : Bibhas Ghoshal (bibhas.ghoshal@iiita.ac.in) Autumn Semester, 2015 Bibhas Ghoshal IOSY 332C & IOPS 332C: OS Autumn Semester, 2015 1 / 43 Lecture Outline Operating

More information

Lecture 1. A. Sahu and S. V. Rao. Indian Institute of Technology Guwahati

Lecture 1. A. Sahu and S. V. Rao. Indian Institute of Technology Guwahati Lecture 1 Introduction to Computing A. Sahu and S. V. Rao Dept of Comp. Sc. & Engg. Indian Institute of Technology Guwahati 1 Outline Computer System Problem Solving and Flow Chart Linux Command ls, mkdir,

More information

Java and Software Design

Java and Software Design Introduction to Java and Software Design Jindal Consulting Chapter 1 Overview of Programming and Problem Solving Slides by Varun Jindal 1 Chapter 1 Topics Computer Programming Programming Life-Cycle Phases

More information

Some popular Operating Systems include Linux Operating System, Windows Operating System, VMS, OS/400, AIX, z/os, etc.

Some popular Operating Systems include Linux Operating System, Windows Operating System, VMS, OS/400, AIX, z/os, etc. An Operating System (OS) is an interface between computer user and computer hardware. An operating system is software which performs all the basic tasks like file management, memory management, process

More information

High Performance Computing Lecture 11. Matthew Jacob Indian Institute of Science

High Performance Computing Lecture 11. Matthew Jacob Indian Institute of Science High Performance Computing Lecture 11 Matthew Jacob Indian Institute of Science Agenda 1. Program execution: Compilation, Object files, Function call and return, Address space, Data & its representation

More information

Operating-System Structures

Operating-System Structures Recap Chapter 2: Operating-System Structures Presented By: Dr. El-Sayed M. El-Alfy Note: Most of the slides are compiled from the textbook and its complementary resources From: OS by Tanenbaum, 2008 March

More information

The Road to CCSv4. Status Update

The Road to CCSv4. Status Update The Road to CCSv4 Status Update Code Composer Studio v4 Summary What is it? Major upgrade to CCS Major architectural changes Based on Eclipse open source software framework New registration/licensing/updating

More information

OS structure. Process management. Major OS components. CSE 451: Operating Systems Spring Module 3 Operating System Components and Structure

OS structure. Process management. Major OS components. CSE 451: Operating Systems Spring Module 3 Operating System Components and Structure CSE 451: Operating Systems Spring 2012 Module 3 Operating System Components and Structure Ed Lazowska lazowska@cs.washington.edu Allen Center 570 The OS sits between application programs and the it mediates

More information

CS 390 Chapter 2 Homework Solutions

CS 390 Chapter 2 Homework Solutions CS 390 Chapter 2 Homework Solutions 2.1 What is the purpose of... System calls are used by user-level programs to request a service from the operating system. 2.5 What is the purpose of... The purpose

More information

Programming Concepts: IDEs, Debug. Paulo Penteado. (http://phdcomics.com/comics/archive.php?

Programming Concepts: IDEs, Debug. Paulo Penteado.  (http://phdcomics.com/comics/archive.php? Programming Concepts: IDEs, Debug Paulo Penteado http://www.ppenteado.net/pc/ (http://phdcomics.com/comics/archive.php?comicid=1690) IDEs Interactive Development Environments Exist for every language (even

More information

Chris Riesbeck, Fall Introduction to Computer Systems

Chris Riesbeck, Fall Introduction to Computer Systems Chris Riesbeck, Fall 2011 Introduction to Computer Systems Welcome to Intro. to Computer Systems Everything you need to know http://www.cs.northwestern.edu/academics/courses/213/ Instructor: Chris Riesbeck

More information

EXPERIMENT 1. FAMILIARITY WITH DEBUG, x86 REGISTERS and MACHINE INSTRUCTIONS

EXPERIMENT 1. FAMILIARITY WITH DEBUG, x86 REGISTERS and MACHINE INSTRUCTIONS EXPERIMENT 1 FAMILIARITY WITH DEBUG, x86 REGISTERS and MACHINE INSTRUCTIONS Pre-lab: This lab introduces you to a software tool known as DEBUG. Before the lab session, read the first two sections of chapter

More information

Lecture 1 Introduction (Chapter 1 of Textbook)

Lecture 1 Introduction (Chapter 1 of Textbook) Bilkent University Department of Computer Engineering CS342 Operating Systems Lecture 1 Introduction (Chapter 1 of Textbook) Dr. İbrahim Körpeoğlu http://www.cs.bilkent.edu.tr/~korpe 1 References The slides

More information

Chapter 2: System Structures

Chapter 2: System Structures Chapter 2: Operating System Structures Operating System Services System Calls Chapter 2: System Structures System Programs Operating System Design and Implementation Operating System Structure Virtual

More information

Four Components of a Computer System

Four Components of a Computer System Four Components of a Computer System Operating System Concepts Essentials 2nd Edition 1.1 Silberschatz, Galvin and Gagne 2013 Operating System Definition OS is a resource allocator Manages all resources

More information

Lecture Topics. Announcements. Today: Operating System Overview (Stallings, chapter , ) Next: Processes (Stallings, chapter

Lecture Topics. Announcements. Today: Operating System Overview (Stallings, chapter , ) Next: Processes (Stallings, chapter Lecture Topics Today: Operating System Overview (Stallings, chapter 2.1-2.4, 2.8-2.10) Next: Processes (Stallings, chapter 3.1-3.6) 1 Announcements Consulting hours posted Self-Study Exercise #3 posted

More information

Elements of Computers and Programming Dr. William C. Bulko. What is a Computer?

Elements of Computers and Programming Dr. William C. Bulko. What is a Computer? Elements of Computers and Programming Dr. William C. Bulko What is a Computer? 2017 What is a Computer? A typical computer consists of: a CPU memory a hard disk a monitor and one or more communication

More information

Today. Review. Unix as an OS case study Intro to Shell Scripting. What is an Operating System? What are its goals? How do we evaluate it?

Today. Review. Unix as an OS case study Intro to Shell Scripting. What is an Operating System? What are its goals? How do we evaluate it? Today Unix as an OS case study Intro to Shell Scripting Make sure the computer is in Linux If not, restart, holding down ALT key Login! Posted slides contain material not explicitly covered in class 1

More information