Chapter 2 - Computer System Structures
... When a routine needs I/O, a system call is done
The OS consults the device status table to get the
device’s types, address, and state
The device status table is updated to indicate the
When the I/O is completed, the OS is interrupted
and control returns to the user
application i/o interface
... Applications normally access such a device through a file-system interface.
The OS itself, and special applications such as database-management systems, may
prefer to access a block device as a simple linear array of blocks. This mode of
access is sometimes called raw I/O.
Memory-mapped file access ...
Slide set from 314 review session
... we typically don’t want to be interrupted during
• When interrupt i is being serviced, interrupts of
priority j >= i are masked, or disabled
• Priority is not enough to save you! The kernel
must be written so that higher-priority interrupts
do not clobber the data structures used by ...
... • Fast external algorithms? Simple tasks.
• Parallel computation? Multi-core with threads, Sharednothing, message-passing
• Exploiting new hardware? Difficult/customized
• Analyzing: queries, cubes, statistics. Machine learning
• Hot today: Information integration (database+files)
... • ReadFile() and WriteFile() to read and write data
• Writes are buffered and flushed to appropriate
device sometime later
• Applications can force the writes with
• File seeking is done with SetFilePointer() call.
• Can use same calls for device interfaces as ...
... • Not supported in first release however
• Latest release has preemptive
• Protected Virtual Memory
• Other features: FTP & Telnet
Abet stuff Goals
... real systems are investigated to motivate the ideas presented. Students build or run simulations and modify the internals of a
working operating system.
... Operating Systems Software
• The operating system facilitates
communications between the human and
• Operating system allocates resources,
schedules submitted requests and monitors
• Example, Loads and controls execution of
• Example, manages the storage of da ...
cs459 - Operating Systems: Introduction
... Transfer processes (or parts thereof) and data in and out of memory
Allocate and release memory space as needed
Maintain sections of memory for caching disk operations
Assign memory shared by multiple processes
Map logical program addresses into physical memory and maintain
portions that are on disk ...
Mercury Business, WP3 - Invenco Highlight-1
... Business Intelligence – data in minutes from source systems
Workstations, Tablets and Smart phones (iPhone, Android, Windows)
All browsers (IE, Chrome, Firefox, Safari)
No Need for expensive BI, ETL, Planning tool licenses – only database
license is needed
Ready made product platform – Implementatio ...
... and graphical environment is a common requirement at EuroFEL RIs.
• Currently, this is realized through rather inconvenient and poorly scalable
• Data protection and encapsulation of the environment is an issue.
• We aim to evaluate some in-house available virtual/cloud resources and to ...
Operating System components File
... One of the most important systems programs for an operating system is the
command interpreter, which is the interface between the user and the operating
system. Some operating systems include the command interpreter in the kernel.
Other operating systems, such as MS-DOS and UNIX, treat the command
INFORMATION-ORIENTED APPLICATION INTEGRATION
... • Externalizes information out of packaged
application through a well defined API
• Use of information broker to support interface
processing to connect to custom/packaged
• Efficiently integrates different types of
• Doesn’t support much on business logic and
Problems of a More Complex Driver For Continuous Data Acquisition
... NDL – DSL, state-machine-based model of device
resources and common device driver operations
BLAST – software model checking
In a previous study, we wrote a tiny device driver in
each of the tools to see how much and to what extent
they can help. There were several useful techniques to
... 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
... (RANGER RMS) are designed to monitor critical
operational conditions and provide remote
alarming based on criteria such as rectifier voltage
levels, power conditions, spill containment systems
compressor status, or storage tank levels. The
FieldLink RMS is well suited to provide critical
system secu ...
Case Study – tcACCESS Operating System: OS/390 DB2 – IMS DL/I
... customer is now capable of transferring massive amounts
of data from the mainframe. The transfer is done in a
synchronous and asynchronous way. Without tcACCESS it
would be very difficult and time consuming to make this
data available to the Open World.
As of today different applications have been d ...
... minicomputer and personal computer systems. His experience ranges from
complete responsibility for the design, implementation and deployment of
systems, to performance optimization of large scale systems. In addition to his
technical skills and experience (with a wide range of operating systems,
... Memory is MUCH faster than disk
So, cache whatever we can in memory
Directory entries (name => i-node)
In computer science, asynchronous I/O, or non-blocking I/O is a form of input/output processing that permits other processing to continue before the transmission has finished.Input and output (I/O) operations on a computer can be extremely slow compared to the processing of data. An I/O device can incorporate mechanical devices that must physically move, such as a hard drive seeking a track to read or write; this is often orders of magnitude slower than the switching of electric current. For example, during a disk operation that takes ten milliseconds to perform, a processor that is clocked at one gigahertz could have performed ten million instruction-processing cycles.A simple approach to I/O would be to start the access and then wait for it to complete. But such an approach (called synchronous I/O or blocking I/O) would block the progress of a program while the communication is in progress, leaving system resources idle. When a program makes many I/O operations, this means that the processor can spend almost all of its time idle waiting for I/O operations to complete.Alternatively, it is possible to start the communication and then perform processing that does not require that the I/O has completed. This approach is called asynchronous input/output. Any task that depends on the I/O having completed (this includes both using the input values and critical operations that claim to assure that a write operation has been completed) still needs to wait for the I/O operation to complete, and thus is still blocked, but other processing that does not have a dependency on the I/O operation can continue.Many operating system functions exist to implement asynchronous I/O at many levels. In fact, one of the main functions of all but the most rudimentary of operating systems is to perform at least some form of basic asynchronous I/O, though this may not be particularly apparent to the operator or programmer. In the simplest software solution, the hardware device status is polled at intervals to detect whether the device is ready for its next operation. (For example the CP/M operating system was built this way. Its system call semantics did not require any more elaborate I/O structure than this, though most implementations were more complex, and thereby more efficient.) Direct memory access (DMA) can greatly increase the efficiency of a polling-based system, and hardware interrupts can eliminate the need for polling entirely. Multitasking operating systems can exploit the functionality provided by hardware interrupts, whilst hiding the complexity of interrupt handling from the user. Spooling was one of the first forms of multitasking designed to exploit asynchronous I/O. Finally, multithreading and explicit asynchronous I/O APIs within user processes can exploit asynchronous I/O further, at the cost of extra software complexity.Asynchronous I/O is used to improve throughput, latency, and/or responsiveness.