1/333
pa-rate naman 5 star plz - Jirah
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
Operating System
Acts as an intermediary between the user of a computer and the computer hardware. The purpose is to provide an environment in which a user can execute programs in a convenient and efficient manner.
Operating System
Is a software that manages computer hardware.
Operating System
Controls the hardware and coordinates its use among the various application programs for the various users.
Hardware
The central processing unit (CPU), the memory, and the input/output (I/O) devices—provides the basic computing resources for the system.
Application Programs
Such as word processors, spreadsheets, compilers, and web browsers—define the ways in which these resources are used to solve users’ computing problems.
Users
People, machines, other computers
Computer-system operation
One or more CPUs, device controllers connect through common bus providing access to shared memory.
Interrupts
Alert the CPU to events that require attention
Trap/Exception
Is a software-generated interrupt caused either by an error or a user request
Interrupt-driven
An operating system is _________
System Call
Request to the OS to allow the user to wait for I/O completion
Device-status table
Contains an entry for each I/O device indicating its type, address, and state
Main Memory
Only large storage media that the CPU can access directly.
Main Memory
Random access. Typically volatile. Typically random-access memory in the form of Dynamic Random-access Memory (DRAM).
Secondary Storage
An extension of main memory that provides large nonvolatile storage capacity
Hard Disk Drivers (HDD)
Rigid metal or glass platters covered with the magnetic recording material.
Disk Controllers
Determines the logical interaction between the device and the computer
Non-volatile memory
Devices– faster than hard disks, nonvolatile. Various technologies. Becoming more popular as capacity and performance increases, price drops
Bootstrap Program
Is loaded at power-up or reboot
Firmware
Typically stored in ROM or EPROM
Caching
Copying information into faster storage system; main memory can be viewed as a cache for secondary storage
Device Driver
For each device controller to manage I/O
CPU
The hardware that executes instructions.
Processor
A physical chip that contains one or more CPUs.
Core
The basic computation unit of the CPU.
Multicore
Including multiple computing cores on the same CPU.
Multiprocessors
Including multiple processors.
Bit
The basic unit of computer storage
Bootstrap Program
Simple code to initialize the system, load the kernel into the memory. Once the kernel is loaded and executing, it can start providing services to the system and its users.
Multiprogramming
Increases CPU utilization, as well as keeping users satisfied, by organizing programs so that the CPU always has one to execute. In a multiprogrammed system, a program in execution is termed as process.
Multitasking
is a logical extension of multiprogramming. In multitasking
systems, the CPU executes multiple processes by switching among them, but the switches occur frequently, providing the user with fast response time.
User Mode
When the computer system is executing on behalf of a user application, the system is in ___________
Kernel Mode
When a user application requests a service from the operating system (via a system call), the system must transition from user to _________ to fulfill the request
Timer
Is used by the OS to ensure a user program is not stuck in an infinite loop or fails to call system services and never return to the OS.
Process
Is an instance of a program in execution.
File Management System
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 directories
Mapping files onto secondary storage
Backup files onto stable (non-volatile) storage media
Mass-Storage Management
Usually, disks used to store data that does not fit in main memory or data that must be kept for a “long” period of time. Proper management is of central importance. Entire speed of computer operation hinges on disk subsystem and its algorithms
OS activities
Mounting and unmounting
Free-space management
Storage allocation
Disk scheduling
Partitioning
Protection
I/O System Management
One purpose of OS is to hide peculiarities 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 the output of one job with the input of other jobs)
General device-driver interface
Drivers for specific hardware devices
Protection
Any mechanism for controlling access of processes or users to resources defined by the OS
Security
Defense of the system against internal and external attacks. Huge range, including denial-of-service, worms, viruses, identity theft, theft of service.
Virtualization
Is a technology that allows us to abstract the hardware of a single computer (the CPU, memory, disk drives, network interface cards, and so forth) into several different execution environments, thereby creating the illusion that each separate environment is running on its own private computer.
Emulation
Involves simulating computer hardware in software, is typically used when the source CPU type is different from the target CPU type.
Virtual Machine Manager
Runs the guest operating systems, manages their resource use, and protects each guest from the others.
Distributed System
Is a collection of physically separate, possibly heterogeneous computer systems that are networked to provide users with access to the various resources that the system maintains.
Network Operating System
Provides features between systems across a network. Communication scheme allows systems to exchange messages. Illusion of a single system.
Tree
A data structure that can be used to represent data hierarchically. Data values in a structure are linked through parent-child relationships.
Hash Function
Takes data as its input, performs a numeric operation on the
data, and returns a numeric value. Is used to retrieve data from a table.
Bitmap
Is a string of n binary digits that can be used to represent the status of n items.
Mobile Computing
Refers to computing on handheld smartphones and tablet
computers.
Client-Server Computing
Contemporary network architecture features arrangements in which server systems satisfy requests generated by client systems.
Computer Server
System provides an interface to which a client can send a request to perform an action (for example, read data).
File Server
System provides a file-system interface where clients can create, update, read, and delete files.
Peer To Peer Computing
All nodes within the system are considered peers, and each may act as either a client or a server, depending on whether it is requesting or providing a service.
Cloud Computing
A type of computing that delivers computing, storage, and even applications as a service across a network.
Public Cloud
A cloud available via the Internet to anyone willing to pay for the services.
Private Cloud
A cloud run by a company for that company’s own use.
Hybrid Cloud
A cloud that includes both public and private cloud components.
Software As A Service (SaaS)
One or more applications (such as word processors or spreadsheets) available via the Internet
Platform As A Service
A software stack ready for application use via the Internet (for example, a database server)
Infrastructure As A Service
Servers or storage available over the Internet (for example, storage available for making backup copies of production data)
Real-time Embedded
Used when rigid time requirements have been placed on the
operation of a processor or the flow of data; thus, it is often used to control the device in a dedicated application.
Graphic User Interface
Users employ a mouse-based window and-menu system characterized by a desktop metaphor. K Desktop Environment (or KDE) and the GNOME desktop by the GNU project, macOS, and Windows are examples.
Touch Screen Interface
Users interact by making gestures on the touch screen
Command Line Interface
CLI
Program Execution
The system must be able to load a program into memory and to run that program. The program must be able to end its execution, either normally or abnormally (indicating error).
I/O Operations
The operating system must provide a means to do I/O.
File-system Manipulation
Programs need to read and write files and directories. They also need to create and delete them by name, search for a given file, and list file information. Some operating systems include permissions management to allow or deny access to files or directories based on file ownership.
Communications
There are many circumstances in which one process needs to exchange information with another process.This may be implemented via shared memory, in which two or more processes read and write to a shared section of memory, or message passing, in which packets of information in predefined formats are moved between processes by the operating system.
Error Detection
The operating system needs to be detecting and correcting errors constantly. For each type of error, the operating system should take the appropriate action to ensure correct and consistent computing.
Resources Allocation
When there are multiple processes running at the same time, resources must be allocated to each of them.
Logging
We want to keep track of which programs use how much and what kinds of computer resources.
Protection and Security
The owners of information stored in a multiuser or networked computer system may want to control the use of that information.
Command Interface
The main function of this is to get and execute the next user-specified command. C shell, Bourne-Again shell, and Korn shell are examples.
System Call
Programming interface to the services provided by the OS. Typically written in a high-level language (C or C++)
Application Programming Interface
Application developers design programs according to this. This specifies a set of functions that are available to an application programmer, including the parameters that are passed to each function and the return values the programmer can expect.
int fd
The file descriptor to be read
void *buf
A buffer which the data will be read
size_t count
The maximum number of bytes to be read into the buffer
Process Control
System Call: 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.
File Management
System Call: create file, delete file, open file, close file, read, write, reposition, get and set file attributes
Device Management
System Call: request device, release device, read, write, reposition, get device attributes, set device attributes, logically attach or detach devices
Information Maintenance
System Call: get time or date, set time or date, get system data, set system data, get and set process, file, or device attributes
Communications
System Call: Create, delete communication connection. Send, receive messages if message-passing model to hostname 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
Protection
System Call: Control access to resources. Get and set permissions. Allow and deny user access
File Management
System Services: These programs create, delete, copy, rename, print, list, and generally access and manipulate files and directories.
Status Information
System Services: Some programs simply ask the system for the date, time, amount of available memory or disk space, number of users, or similar information. Others are more complex, providing detailed performance, logging, and debugging information.
File Modification
System Services: Several text editors may be available to create and modify the content of files stored on disk or other storage devices. There may also be special commands to search the contents of files or perform transformations of the text.
Programming-language support
System Services: Compilers, assemblers, debuggers, and interpreters for common programming languages (such as C, C++, Java, and Python) are often provided with the operating system or available as a separate download.
Program loading and execution
System Services: Once a program is assembled or compiled, it must be loaded into memory to be executed. The system may provide absolute loaders, relocatable loaders, linkage editors, and overlay loaders. Debugging systems for either higher-level languages or machine language is needed as well.
Communications
System Services: These programs provide the mechanism for creating virtual connections among processes, users, and computer systems. They allow users to send messages to one another’s screens, to browse web pages, to send e-mail messages, to log in remotely, or to transfer files from one machine to another.
Background Services
System Services: All general-purpose systems have methods for launching certain system-program processes at boot time. Some of these processes terminate after completing their tasks, while others continue to run until the system is halted.
Linker
Combines relocatable object files into a single binary executable file.
Loader
Is used to load the binary executable file into memory, where it is eligible to run on a CPU core.
User Goals
The operating system should be convenient to use, easy to learn, reliable, safe, and fast.
System Goals
The operating system should be easy to design, implement, and maintain, as well as flexible, reliable, error-free, and efficient.
Mechanisms
Determine how to do something.
Policies
Determine what will be done.
Simple Structure
A large and complex system as a modern operating system must be engineered carefully if it is to function properly and be modified easily. A common approach is to partition the task into small components, or modules, rather than have one single system.
Monolithic Structure
A common technique for designing operating systems where all of the functionality of the kernel are placed into a single, static binary file that runs in a single address space. An example of such limited structuring is the original UNIX operating system, which consists of two separable parts: the kernel and the system programs.
Layered Approach
In which the operating system is broken into a number of layers (levels). 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. This approach simplifies debugging and system verification.