Organization of the file system
processes at all times while the file remains open to the process. But it was
not flexible and would be inconsistent with the nature of the task. The main
ways the temporary seizure of the means of a file or record (part of the file
between the positions), as well as blocking some kernel structures responsible
for working with files. Thus, the OS Unix system call while conducting a
transaction file, usually occurs blocking index node containing the addresses of
file data blocks. It would seem that the organization holds or prohibiting more
than one process to work with the file at runtime system call was unnecessary,
because in the vast majority of cases, implementation of system calls and so is
not interrupted, that is the kernel works in nevytesnyayuschey multitasking. But
in this case, this is not quite the case. Operation reading and writing took a
long time and only come central processor, as determined by the independent
channels, so installing locks at the time of system call is a necessary
guarantee atomicity of operations reading and writing. The systemic challenge to
install and test lock on the file is always an issue with modern multi-OS. In
principle, it would be logical to link the file synchronization as a whole
system with a challenge to open (ie, such as opening a file on the recording
mode or renewal could mean its monopoly lock appropriate process, and the
opening line-reading together lock). So there are many operating systems (OS
starting with Multics). In the Unix operating system that is not the case, which
has historical causes. The first version of Unix developed by Thompson and
Ritchie, the mechanism for the capture file absent. Apply a very simple approach
to the parallel (from multiple processes) to access files: the system allows any
number of processes at the same time open the same file in any mode (read, write
or update), and made no sinhronizatsionnyh action. The entire responsibility for
the correctness of joint processing burden on the file using its processes, and
the system has not even provided any special funds for the synchronization of
access to the file. But then, in order to increase the attractiveness of the
system for commercial users working with databases, in the version of System V
have been included mechanisms capture and record the file-based system call
fcntl. Allowed two options synchronization: on the expectation when the locking
requirement may result in postponing the process until this requirement can be
met, and without waiting, immediately notified when the process of meeting the
requirements of blocking or her inability to meet at this point in time.
Installed locking refer only to the process, which they found and not inherited
protsessami-potomkami the process. Moreover, even if the process takes some
opportunities sinhronizatsionnymi Call fcntl system, other processes can still
work with the file without any synchronization. In other words, the case group
processes, file sharing, to agree on a way to synchronize concurrent access.
Next part
|