Operating Systems and Databases AE3B33OSD. RNDr. Petr Štěpán, Ph.D 13:30 15:45. Introduction

Similar documents
Operating System Services

CS420: Operating Systems. OS Services & System Calls

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

Chapter 2: Operating-System Structures

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

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

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

Chapter 2: Operating-System Structures

Chapter 2: Operating-System Structures

Chapter 1: Introduction. Operating System Concepts 9 th Edit9on

CS370 Operating Systems

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

Chapter 2: System Structures

Chapter 2: Operating-System

Chap2: Operating-System Structures

Chapter 2: Operating-System Structures

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

Lecture 2 Operating System Structures (chapter 2)

Introduction to Operating Systems (Part II)

Chapter 2. Operating-System Structures

Chapter 1: Introduction. Operating System Concepts 8 th Edition,

Chapter 1: Introduction

7/20/2008. What Operating Systems Do Computer-System Organization

Practical Malware Analysis

To provide a grand tour of the major operating systems components To provide coverage of basic computer system organization

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

Chapter 1: Introduction. Operating System Concepts 8th Edition,

CS370 Operating Systems

Chapter 1: Introduction. Chapter 1: Introduction

Chapter 1: Introduction

Computer System Overview. Chapter 1

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

CS420: Operating Systems

CS370 Operating Systems

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

Operating Systems. Lecture Course in Autumn Term 2015 University of Birmingham. Eike Ritter. September 22, 2015

CS420: Operating Systems

Chapter 2: Operating-System Structures

Course Details. Operating Systems with C/C++ Course Details. What is an Operating System?

CS412/CS413. Introduction to Compilers Tim Teitelbaum. Lecture 21: Generating Pentium Code 10 March 08

OPERATING SYSTEMS: Lesson 1: Introduction to Operating Systems

Computer System Overview

Computer System Overview

CS307: Operating Systems

CS 471 Operating Systems. Yue Cheng. George Mason University Fall 2017

Low-Level Essentials for Understanding Security Problems Aurélien Francillon

Computer Systems Overview

European University of Lefke. Instructor: Dr. Arif SARI

OPERATING SYSTEM OVERVIEW

Compiler Construction D7011E

Computer System Overview OPERATING SYSTEM TOP-LEVEL COMPONENTS. Simplified view: Operating Systems. Slide 1. Slide /S2. Slide 2.

Ricardo Rocha. Department of Computer Science Faculty of Sciences University of Porto

Operating-System Structures

Assembly Language. Lecture 2 - x86 Processor Architecture. Ahmed Sallam

Chapter 1: Introduction

CS241 Computer Organization Spring 2015 IA

Chapter 2 Operating-System Structures

The Slide does not contain all the information and cannot be treated as a study material for Operating System. Please refer the text book for exams.

CS30002: Operating Systems. Arobinda Gupta Spring 2017

Assembly Language. Lecture 2 x86 Processor Architecture

x86 assembly CS449 Fall 2017

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

Second Part of the Course

How Software Executes

x86 architecture et similia

Lecture 2 - Fundamental Concepts

CSC 2400: Computer Systems. Towards the Hardware: Machine-Level Representation of Programs

DM510 Operating Systems. Jacob Aae Mikkelsen

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

Operating Systems. Overview. Dr Alun Moon. Computing, Engineering and Information Sciences. 27th September 2011

CSC 8400: Computer Systems. Machine-Level Representation of Programs

Process Layout and Function Calls

Lecture 1 Introduction (Chapter 1 of Textbook)

What is a Compiler? Compiler Construction SMD163. Why Translation is Needed: Know your Target: Lecture 8: Introduction to code generation

OPERATING SYSTEMS Lecture Notes. Prepared by K.Rohini, Assistant Professor, CSE Department, GVPCEW.

Program Exploitation Intro

CPS104 Recitation: Assembly Programming

SRIMAAN COACHING CENTRE-TRB-COMPUTER INSTRUCTORS STUDY MATERIAL CONTACT: III

System Call System Program Linker/Loader with Examples Types of computing Environment

Last 2 Classes: Introduction to Operating Systems & C++ tutorial. Today: OS and Computer Architecture

CS 31: Intro to Systems ISAs and Assembly. Martin Gagné Swarthmore College February 7, 2017

Memory Models. Registers

W4118: PC Hardware and x86. Junfeng Yang

Chapter 2: System Structures

Function Calls COS 217. Reading: Chapter 4 of Programming From the Ground Up (available online from the course Web site)

CS 537 Lecture 2 Computer Architecture and Operating Systems. OS Tasks

Module 1 Introduction/OS Overview

Operating-System Structures

EECS 3221 Operating System Fundamentals

EECS 3221 Operating System Fundamentals

Q.1 Explain Computer s Basic Elements

Major Requirements of an OS

X86 Addressing Modes Chapter 3" Review: Instructions to Recognize"

IA32 Intel 32-bit Architecture

Four Components of a Computer System

Module 3: Operating-System Structures

UNIT 2. OPERATING SYSTEM STRUCTURES

SOEN228, Winter Revision 1.2 Date: October 25,

CPSC 341 OS & Networks. Introduction. Dr. Yingwu Zhu

x86 assembly CS449 Spring 2016

Transcription:

Operating Systems and Databases AE3B33OSD RNDr. Petr Štěpán, Ph.D stepan@fel.cvut.cz 13:30 15:45 Introduction

Operating System and Databases Goal of course: To learn what is OS and how OS works To learn principles of OS design To learn algorithms and known solution for complicated problems Introduction to Databases How to use Databases Material: https://cw.fel.cvut.cz/wiki/courses/ae3b33osd Book: Silberschatz A., Galvin P.B., Gange G.: Operating Systems Concepts http://codex.cs.yale.edu/avi/os book/os7/os7c/index.html CS 162 University of Berkeley, Youtube Lecture 1/Page 2

Operating Systems and Networks Examination: Lab exercise 10 points Test quiz select correct answer Test 2 more general question 8 points 12 points Topics for test will be listed on web. Result: A >=27, B >=24, C>=21, D>=18, E>=15 Lecture 1/Page 3

Why Operating System? OS is a program that acts as an intermediary between a user of a computer and a computer hardware. You cannot use PC without OS Operating system goals: Execute user programs and make solving user problems easier. Make the computer system convenient to use. Use the computer hardware in an efficient manner. Exploits the hardware resources of one or more processors Provides a set of services to system users Manages memory storage and I/O devices Lecture 1/Page 4

Where is Operating System? Operating system runs on a computer Operating system strongly depends on computer architecture On CPU type, number, instruction set On bus connection of components On devices drivers (programs that control the device) In this course we will suppose general operating system on general computer Some approaches will be documented on OS Linux, Windows, MacOS for PC like computer Lecture 1/Page 5

Elements of General Computer Processor (one or more) Main Memory Volatile, real memory or primary memory System bus Communication among processors, memory, and I/O modules Lecture 1/Page 6 I/O modules Secondary memory Communications devices Terminals Printers

CPU Top Level Components Lecture 1/Page 7

Control and Status Registers Instruction pointer Contains the address of an instruction to be fetched Instruction Register Contains the instruction most recently fetched Program Status Word Flags Condition codes Interrupt enable/disable Supervisor/user mode Used by privileged operating system routines to control the execution of programs Lecture 1/Page 8

User Visible Registers May be referenced by machine language RISC Reduced Instruction Set Computing (ARM, Power) vs. CISC Complex Instruction Set Computers (Intel) Available to all programs application programs and system programs Types of registers Data Address Index Stack pointer Lecture 1/Page 9

Processor x86/amd64 All registers are 64/32/16/8 bits with respect to back compatibility 64 bit registr rax 32-bit part eax 16 bit ax ah al Control and status registers EIP/RIP instruction pointer EFLAGS/RFLAGS processor state interrupt enable, system/user mode, result of operation carry, zero, overflow, sign etc. Lecture 1/Page 10

Processor x86/amd64 User registers Standard program values eax, ebx, ecx, edx Values and pointers esi, edi, ebp esp stack pointer used for function calling, instructions push, pop, call, ret AMD64/X86 64 new 8 user registers r8 r15, r8b lowest byte, r8w lowest word (16 bits), r8d lowest 32 bits, r8 64 bits register Lecture 1/Page 11

Processor x86/amd64 Processor instructions Save value AT&T movq from 64b, to movl from 32b, to movw from 16b, to movb from 8b, to registers are %ax values $, hex 0x movl $0xff, %ebx Intel mov to, from only ax number, hex postfix h mov ebx, 0ffh Lecture 1/Page 12

Processor x86/amd64 Processor instructions Save value pointer to memory pointer has 4 parts base+index*size+shift array of structures with fixed size, started at base address index define which item and shift inside of structure. Need not to use all 4 parts AT&T Intel movl (%ecx),%eax mov eax, [ecx] from ecx movl 3(%ebx), %eax mov eax, [ebx+3] from ebx+3 movl (%ebx, %ecx, 0x2), %eax mov eax, [ebx+ecx*2h] movl 0x20(%ebx, %ecx, 0x4), %eax mov eax, [ebx+ecx*4h 20h] Lecture 1/Page 13

Procesor x86/amd64 Processor instructions Arithmetic AT&T syntax operation what, with addq $0x05,%eax eax = eax + 5 subl 4(%ebp), %eax eax = eax mem(ebp 4) subl %eax, 4(%ebp) mem(ebp 4) = mem(ebp 4) eax andx bit and type of argument defined by x andb, andw, andl, andq orx bit or xorx bit xor (fastest set register to 0 ) mulx multiplication of numbers without sign divx division of numbers without sign imulx multiplication of numbers with sign idivx division of numbers with sign Lecture 1/Page 14

Procesor x86/amd64 Processor instructions Arithmetic with one operand AT&T syntax operation what incl %eax decw (%ebx) shlb $3, %al eax = eax + 1 mem(ebx) = mem(ebx) 1 al = al<<3 shrb $1, %bl bl=11000000, po bl=01100000 sarb $1, %bl bl=11000000, po bl=11100000 rorx, rolx, rcrx, rcl bit rotation, c using carry Work with stack pushl %eax popw %ebx pushf/popf pusha/popa store on stack eax 32 bit take from stack 2 bytes into ebx store/take register EFLAGS store/take all users registers Lecture 1/Page 15

Procesor x86/amd64 Processor instructions Conditional jumps test a1, a2tmp = a1 AND a2, cmp a1, a2 tmp = a1 a2, Z tmp=0, C tmp<0 Z tmp=0, C tmp<0 than can be used je where jump equal jne where jump not equal jg/ja where jump greater, a1 > a2 (sign/unsig) jge/jae where jump greater equal, a1 >= a2 (sign/unsig) jl/jb where jump less, a1 < a2 (sign/unsig) jle/jbe where jump less equal, a1 <= a2 (sign/unsig) jz/jnz where jump if Z=1/0 jo/jno where jump if O (overflow) = 1/0 Lecture 1/Page 16

Procesor x86/amd64 Processor instructions Functions call adr it is equal push %eip, jmp adr ret it is equal pop %eip Local variables in function example of implementation pushl %ebp ; Store value EBP on stack movl %esp, %ebp ; copy ESP to EBP sub $12, %esp ; decrease stack by 3x4 bajty ; first local variable address 4(%ebp), second 8(%ebp) ; function parameters 8(%ebp), next 12(%ebp), mov %ebp, %esp ; restore ESP to original value ; local variables are removed by this step pop ret %ebp ; restore value EBP ; return from function Lecture 1/Page 17

Procesor x86/amd64 Assembler complexity Algorithms can be translated into assembly by different ways Different approaches has different length and speed xor %ebx, %ebx mov $0, %ebx lea adresa, registr load effective address lea 12(%esp), %esp sub $12, %esp lea is faster, because it doesn t use ALU (but some processor Atom has pointer computation slower than ALU). Lecture 1/Page 18

Interrupt Cycle Lecture 1/Page 19

Interrupts Interrupt the normal sequencing of the processor Most I/O devices are slower than the processor Processor must pause to wait for device Lecture 1/Page 20

Program Flow of Control With Interrupts, Short I/O Wait Lecture 1/Page 21

Interrupts Interrupt handler: Program to service a particular I/O device Generally part of the operating system Suspends the normal sequence of execution Lecture 1/Page 22

Simple Interrupt Processing Lecture 1/Page 23

Changes in Memory and Registers for an Interrupt Lecture 1/Page 24

Multiple Interrupts Disable interrupts while an interrupt is being processed Lecture 1/Page 25

Multiple Interrupts Define priorities for interrupts Lecture 1/Page 26

Memory Hierarchy Faster access time, greater cost per bit Cache memory is fast but it is small because it is expensive Greater capacity, smaller cost per bit & slower access speed DVD memory is cheap but the CPU need first to read data into main memory it is slow Lecture 1/Page 27

Memory Hierarchy Lecture 1/Page 28

Going Down the Hierarchy Decreasing cost per bit Increasing capacity Increasing access time Decreasing frequency of access of the memory by the processor Locality of reference Lecture 1/Page 29

Cache Memory Invisible to operating system Increase the speed of memory Processor speed is faster than memory speed Exploit the principle of locality Lecture 1/Page 30

Cache Memory Contains a copy of a portion of main memory Processor first checks cache If not found in cache, the block of memory containing the needed information is moved to the cache and delivered to the processor Lecture 1/Page 31

Programmed I/O I/O module performs the action, not the processor Sets appropriate bits in the I/O status register No interrupts occur Processor checks status until operation is complete Lecture 1/Page 32

Interrupt Driven I/O Processor is interrupted when I/O module ready to exchange data Processor saves context of program executing and begins executing interrupt handler No needless waiting Consumes a lot of processor time because every word read or written passes through the processor Lecture 1/Page 33

Direct Memory Access Transfers a block of data directly to or from memory An interrupt is sent when the transfer is complete Processor continues with other work Lecture 1/Page 34

Direct Memory Access (DMA) I/O exchanges occur directly with memory Processor grants I/O module authority to read from or write to memory Relieves the processor responsibility for the exchange Lecture 1/Page 35

What OS do? Lecture 1/Page 36

Structure of computer Application developer User OS developer Applications System programs (utility) Operating system kernel Hardware Lecture 1/Page 37

Operating System structure Graphical user interface (GUI) Networking File system mng. Storage mng. I/O mng. Memory mng. Process mng. OS kernel Lecture 1/Page 38 met s y S noit cet or p Command-line interface (CLI)

Process Management A process is a program in execution. It is a unit of work within the system. Program is a passive entity, process is an active entity. Process needs resources to accomplish its task CPU, memory, I/O, files Initialization data Process termination requires reclaim of any reusable resources Single threaded process has one program counter specifying location of next instruction to execute Process executes instructions sequentially, one at a time, until completion Multi threaded process has one program counter per thread Typically system has many processes, some user, some operating system running concurrently on one or more CPUs Concurrency by multiplexing the CPUs among the processes / threads Lecture 1/Page 39

Process Management Activities The operating system is responsible for the following activities in connection with process management: Creating and deleting both user and system processes Suspending and resuming processes Providing mechanisms for process synchronization Providing mechanisms for process communication Providing mechanisms for deadlock handling Lecture 1/Page 40

Memory Management All data in memory before and after processing All instructions in memory in order to execute Memory management determines what is in memory when Optimizing CPU utilization and computer response to users Memory management activities Keeping track of which parts of memory are currently being used and by whom Deciding which processes (or parts thereof) and data to move into and out of memory Allocating and deallocating memory space as needed Lecture 1/Page 41

Storage Management OS provides uniform, logical view of information storage Abstracts physical properties to logical storage unit file Each medium is controlled by device (i.e., disk drive, tape drive) Varying properties include access speed, capacity, data transfer rate, access method (sequential or random) File System management Files usually organized into directories Access control on most systems to determine who can access what OS activities include Creating and deleting files and directories Primitives to manipulate files and dirs Mapping files onto secondary storage Backup files onto stable (non volatile) storage media Lecture 1/Page 42

I/O Subsystem One purpose of OS is to hide specialities of hardware devices from the user I/O subsystem responsible for Memory management of I/O including buffering (storing data temporarily while it is being transferred), caching (storing parts of data in faster storage for performance), spooling (the overlapping of output of one job with input of other jobs) General device driver interface Drivers for specific hardware devices Lecture 1/Page 43

Device Status Table Lecture 1/Page 44

User Operating System Interface CLI allows direct command entry Sometimes implemented in kernel, mostly by system programs Sometimes multiple flavors implemented shells Primarily fetches a command from user and executes it Some commands are built in, sometimes just names of programs If the latter, adding new features doesn t require shell modification Lecture 1/Page 45

User Operating System Interface GUI a user friendly desktop metaphor interface Usually mouse, keyboard, and monitor Icons represent files, programs, actions, etc. Various mouse buttons over objects in the interface cause various actions (provide information, options, execute function, open directory (known as a folder) Invented at Xerox PARC 1981, followed by Apple 1983, X windows (client server)1984 and MS Windows 1.0 1985 Many systems include both CLI and GUI interfaces Microsoft Windows is GUI with CLI command shell Apple Mac OS X as Aqua GUI interface with UNIX kernel underneath and shells available Solaris is CLI with optional GUI interfaces (Java Desktop, KDE) Lecture 1/Page 46

How Operating System works? Graphical user interface (GUI) Command-line interface (CLI) How can OS kernel safety communicate with user? OS kernel Lecture 1/Page 47 Solution: System services using system calls! oit cet or p met s y S Networking File system mng. Storage mng. I/O mng. Memory mng. Process mng.

Operating System Services Operating System Services are all function that OS kernel offers for user programs. There are several sets of OS Services One set of operating system services provides functions that are helpful to the user: User interface Almost all operating systems have a user interface (UI) Varies between Command Line (CLI), Graphics User Interface (GUI), Batch Program execution The system must be able to load a program into memory and to run that program, end execution, either normally or abnormally (indicating error) I/O operations A running program may require I/O, which may involve a file or an I/O device. File system manipulation The file system is of particular interest. Obviously, programs need to read and write files and directories, create and delete them, search them, list file Information, permission management. Lecture 1/Page 48

Operating System Services Communications Processes may exchange information, on the same computer or between computers over a network Communications may be via shared memory or through message passing (packets moved by the OS) Error detection OS needs to be constantly aware of possible errors May occur in the CPU and memory hardware, in I/O devices, in user program For each type of error, OS should take the appropriate action to ensure correct and consistent computing Debugging facilities can greatly enhance the user s and programmer s abilities to efficiently use the system Lecture 1/Page 49

OS protection by System services Transition from User to Kernel Mode and back User processes are running in protected mode Kernel is running in supervisor mode Lecture 1/Page 50

System Calls Programming interface to the services provided by the OS Typically written in a high level language (C or C++) Mostly accessed by programs via a high level Application Program Interface (API) rather than direct system call use Three most common APIs are Win32 API for Windows, POSIX API for POSIX based systems (including virtually all versions of UNIX, Linux, and Mac OS X), and Java API for the Java virtual machine (JVM) Why to use APIs rather than system calls? (Note that the system call names used throughout this text are generic) Lecture 1/Page 51