Module 2 - Operating System Services

0.0(0)
studied byStudied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/59

encourage image

There's no tags or description

Looks like no tags are added yet.

Last updated 5:38 AM on 2/8/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai

No analytics yet

Send a link to your students to track their progress

60 Terms

1
New cards

Operating systems

Provide an environment for execution of programs and services to programs and users

2
New cards

User interface

Almost all operating systems have a user interface (UI). Varies between Command-Line (CLI), Graphics User Interface (GUI), touch-screen, Batch

3
New cards

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)

4
New cards

I/O operations

A running program may require I/O, which may involve a file or an I/O device

5
New cards

File-system manipulation

The file system is of particular interest. Programs need to read and write files and directories, create and delete them, search them, list file Information, permission management.

6
New cards

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)

7
New cards

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

8
New cards

Resource allocation

When multiple users or multiple jobs running concurrently, resources must be allocated to each of them.

  • Many types of resources - CPU cycles, main memory, file storage, I/O devices.

9
New cards

Logging

To keep track of which users use how much and what kinds of computer resources

10
New cards

Protection and security

The owners of information stored in a multiuser or networked computer system may want to control use of that information, concurrent processes should not interfere with each other.

  • Protection involves ensuring that all access to system resources is controlled.

  • Security of the system from outsiders requires user authentication, extends to defending external I/O devices from invalid access attempts

11
New cards

CLI (Command Line Interpreter)

  • allows direct command entry

  • Sometimes implemented in kernel

  • sometimes by systems program

  • Sometimes multiple flavors implemented – shells.

  • Primarily fetches a command from user and executes it.

  • Sometimes commands built-in, sometimes just names of programs

12
New cards

GUI

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

13
New cards

Touchscreen Interfaces

___________ devices require new interfaces.

  • Mouse not possible or not desired.

  • Actions and selection based on gestures.

  • Virtual keyboard for text entry. Voice commands

14
New cards

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 Programming 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)

15
New cards

System Call Implementation

  • Typically, a number is associated with each system call.

  • System-call interface maintains a table indexed according to these numbers.

  • The system call interface invokes the intended system call in OS kernel and returns status of the system call and any return values.

  • The caller need know nothing about how the system call is implemented.

  • Just needs to obey API and understand what OS will do as a result call.

  • Most details of OS interface hidden from programmer by API.

  • Managed by run-time support library (set of functions built into libraries included with compiler)

16
New cards

Process control

create process, terminate process, end, abort, load, execute, get process attributes, set process attributes, wait for time, wait event, signal event, allocate and free memory, Dump memory if error, Debugger for determining bugs, single step execution, Locks for managing access to shared data between processes

17
New cards

File management

  • create file, delete file

  • open, close file

  • read, write, reposition

  • get and set file attributes

18
New cards

Device management

  • request device, release device

  • read, write, reposition

  • get device attributes, set device attributes

  • logically attach or detach devices

19
New cards

Information maintenance

  • get time or date, set time or date

  • get system data, set system data

  • get and set process, file, or device attributes

20
New cards

Communications (system calls)

  • create, delete communication connection

  • send, receive messages if message passing model to host name or process name, From client to server

  • Shared-memory model create and gain access to memory regions

  • transfer status information

  • attach and detach remote devices

21
New cards

Protection

Control access to resources, Get and set permissions, Allow and deny user access

22
New cards

System programs

provide a convenient environment for program development and execution

23
New cards

File manipulation

Create, delete, copy, rename, print, dump, list, and generally manipulate files and directories

24
New cards

Status information

  • Some ask the system for info - date, time, amount of available memory, disk space, number of users.

  • Others provide detailed performance, logging, and debugging information. Typically, these programs format and print the output to the terminal or other output devices. Some systems implement a registry - used to store and retrieve configuration information

25
New cards

File modification

  • Text editors to create and modify files.

  • Special commands to search contents of files or perform transformations of the text

26
New cards

Programming-language support

Compilers, assemblers, debuggers and interpreters sometimes provided

27
New cards

Program loading and execution

Absolute loaders, relocatable loaders, linkage editors, and overlay-loaders, debugging systems for higher-level and machine language

28
New cards

Communications (system services)

Provide the mechanism for creating virtual connections among processes, users, and computer systems. Allow users to send messages to one another’s screens, browse web pages, send electronic-mail messages, log in remotely, transfer files from one machine to another

29
New cards

Background Services

  • Launch at boot time.

  • Some for system startup, then terminate.

  • Some from system boot to shutdown.

  • Provide facilities like disk checking, process scheduling, error logging, printing.

  • Run in user context not kernel context.

  • Known as services, subsystems, daemons

30
New cards

Application programs

  • Don’t pertain to system.

  • Run by users.

  • Not typically considered part of OS.

  • Launched by command line, mouse click, finger poke

31
New cards

Relocatable object file

Source code compiled into object files designed to be loaded into any physical memory location

32
New cards

Linker

combines these into single binary executable file. Also brings in libraries

33
New cards

Loader

Must be brought into memory by loader to be executed.

  • Relocation assigns final addresses to program parts and adjusts code and data in program to match those addresses

34
New cards

Dynamically linked libraries

are loaded as needed, shared by all that use the same version of that same library (loaded once)

35
New cards

Application Binary Interface (ABI)

is architecture equivalent of API, defines how different components of binary code can interface for a given operating system on a given architecture, CPU, etc.

36
New cards

User goals

operating system should be convenient to use, easy to learn, reliable, safe, and fast

37
New cards

System goals

operating system should be easy to design, implement, and maintain, as well as flexible, reliable, error-free, and efficient

38
New cards

Policy

What needs to be done?

Example: Interrupt after every 100 seconds

39
New cards

Mechanism

How to do something?

Example: timer

40
New cards

Separate policy from mechanism

The separation of policy from mechanism is a very important principle, it allows maximum flexibility if policy decisions are to be changed later.

41
New cards

Simple structure

MS-DOS

42
New cards

More complex

UNIX

43
New cards

Layered

an abstraction

44
New cards

Microkernel

Mach

45
New cards

Kernel

  • Consists of everything below the system-call interface and above the physical hardware.

  • Provides the file system, CPU scheduling, memory management, and other operating-system functions

46
New cards

Layered Approach

The operating system is divided into a number of layers (levels), each built on top of lower layers. The bottom layer (layer 0), is the hardware the highest (layer N) is the user interface. With modularity, layers are selected such that each uses functions (operations) and services of only lower-level layers

47
New cards

Microkernels

  • Moves as much from the kernel into user space.

  • Mach is an example of microkernel

    • Mac OS X kernel (Darwin) partly based on Mach

  • Communication takes place between user modules using message passing.

  • Easier to extend a microkernel.

  • Easier to port the operating system to new architectures.

  • More reliable (less code is running in kernel mode).

  • More secure.

  • Performance overhead of user space to kernel space communication

48
New cards

Loadable kernel modules (LKMs)

Many modern operating systems implement loadable kernel modules (LKMs). Uses object-oriented approach. Each core component is separate. Each talks to the others over known interfaces. Each is loadable as needed within the kernel

49
New cards

Hybrid Systems

Most modern operating systems are not one pure model. Hybrid combines multiple approaches to address performance, security, usability needs

50
New cards

Android

  • Developed by Open Handset Alliance (mostly Google).

    • Open Source.

  • Based on Linux kernel but modified.

    • Provides process, memory, device-driver management.

    • Adds power management.

  • Runtime environment includes core set of libraries and Dalvik virtual machine

    • Apps developed in Java plus Android API

      • Java class files compiled to Java bytecode then translated to executable thnn runs in Dalvik VM

  • Libraries include frameworks for web browser (webkit), database (SQLite), multimedia, smaller libc

51
New cards

System Boot

When power initialized on system, execution starts at a fixed memory location. Operating system must be made available to hardware so hardware can start it. Small piece of code – bootstrap loader, BIOS, stored in ROM or EEPROM locates the kernel, loads it into memory, and starts it. Modern systems replace BIOS with Unified Extensible Firmware Interface (UEFI)

52
New cards

Debugging

finding and fixing errors, or bugs

53
New cards

Core dump file

capturing memory of the process

54
New cards

Crash dump file

containing kernel memory

55
New cards

Performance Tuning

Improve performance by removing bottlenecks. OS must provide means of computing and displaying measures of system behavior

56
New cards

Tracing

Collects data for a specific event, such as steps involved in a system call invocation

57
New cards

strace

trace system calls invoked by a process

58
New cards

gdb

source-level debugger

59
New cards

perf

collection of Linux performance tools

60
New cards

tcpdump

collects network packets

Explore top flashcards