IBM 10 SP1 EAL4 Manuale Utente

Pagina di 246
file by adding ACLs with the setfacl command.  For example, the following command allows a user 
named john read access to this file, even if john does not belong to the root group. 
#setfacl –m user:john:4,mask::4 /aclfile 
The ACL on file will look like: 
# owner: root 
# group: root 
user:: rw-
user:john:r— 
group::r-- 
mask::r--
other::---
The mask field reflects the maximum permission that a user can get.  Hence, as per the ACL, even though 
john is not part of the root group, john is allowed read access to the file /aclfile. 
 5.1.6  Asynchronous I/O 
Asynchronous I/O (AIO) enables even a single application thread to overlap I/O operations with other 
processing, by providing an interface for submitting one or more I/O requests in one system call 
(io_submit()) without waiting for completion, and a separate interface (io_getevents()) to reap 
completed I/O operations associated with a given completion group.
General operation of asynchronous I/O proceeds as follows:
Process sets up asynchronous I/O context, for files opened with O_DIRECT, using io_setup 
system call.
Process uses io_submit system call to submit a set of I/O operations.
Process checks the completion of I/O operations using io_getevents.
Process destroys the asynchronous I/O context using the io_destroy system call.
AIO uses the kernel bottom half mechanism of work queues to perform deferred work of AIO. io_setup 
sets up a work queue named aio, to which AIO work is submitted.
Some of the capabilities and features provided by AIO are:
The ability to submit multiple I/O requests with a single system call.
The ability to submit an I/O request without waiting for its completion and to overlap the request with 
other processing.
Optimization of disk activity by the kernel through combining or reordering the individual requests of 
a batched I/O variety.
Better CPU utilization and system  throughput by eliminating extra threads  and reducing context 
switches.
 5.1.7  I/O scheduler
The I/O scheduler in Linux forms the interface between the generic block layer and the low-level device 
drivers.  The block layer provides functions that are utilized by the file systems and the virtual memory 
manager to submit I/O requests to block devices.  These requests are transformed by the I/O scheduler and 
made available to the low-level device drivers.  The device drivers consume the transformed requests and 
forward them, by using device-specific protocols, to the actual device controllers that perform the I/O 
operations.  As prioritized resource management seeks to regulate the use of a disk subsystem by an 
51