Articles by iTech
troubleshooting
History Evolution & Development
led in the 1960s, a joint project between researchers at MIT, Bell Labs and General Electric for the construction of a third-generation operating system Multics ( multiplexed information and computing services) are known. It was as utility computing, a machine that support hundreds of concurrent users, time-sharing would be considered. She saw a huge machine provides computing power for all in Boston. The idea that machines as powerful as their GE-645 as PCs cost only a few thousand dollars would be sold only 20 years later would be, like science fiction, seemed to have it. However MULTICS proved more difficult than anticipated to implement and the Bell Labs withdrew from the project in 1969 as General Electric, exit from the computer industry together.
One of the Bell Labs researchers (Ken Thompson) has decided to rewrite a lighter version of MULTICS, first as a hobby. He used a PDP-7 minicomputer was that no help and wrote the code in assembler. He was working at first down, stripped single-user version of MULTICS, but Thompson actually got the system and called one of his colleagues jokingly UNICS (Universal Internet and information). The name stuck, but the spelling was changed to UNIX. Thompson was soon joined on the project by Dennis Richie and later by his department.
UNIX was developed by the old PDP-7 to the much more modern and later to the PDP-11/20 / 45 and PDP-11 PDP-11/70 moves. These last two computers had fond memories as well as hardware memory protection, which can support multiple users simultaneously. Thompson then decided to rewrite UNIX in a high-level language called B. Unfortunately, this attempt was unsuccessful and Richie developed a successor named B C. Together, Thompson and Ritchie wrote UNIX in C and C dominates the result of system programming since. In 1974 Thompson and Ritchie published a document on this publication UNIX and encouraged many universities Bell Labs to ask a copy of UNIX. As it happens, the PDP-11 computer of choice for almost all departments of computer science and operating systems that came with this computer, generally considered dangerous, so UNIX was soon they came to replace. The first version, which has become the norm in universities was version 6 and in a few years it has been replaced with version 7. In the mid-1980s has been widely used on UNIX mini-computers and engineering workstations from a variety of suppliers.
in 1984 AT & T has released the first commercial version of UNIX System III, based on the version 7. For a number of years has improved and upgraded to System V. Meanwhile, the University of California at Berkeley has changed the original version 6 substantially. They called their version (the first Berkeley Software Distribution) 1BSD. This was over time 4BSD and improvements, such as the use of sheets, file names to 14 characters and a new network protocol, modified TCP / IP. Some computer manufacturers such as DEC and Sun Microsystems based their version of Berkeley Unix, rather than AT & T. There have been some attempts to standardize UNIX in the 1980s, but only the POSIX committee had a real success, and this was limited.
In the 1980s, most environments have become more heterogeneous, customers began to ask, portability and greater interoperability of systems and application software. Many customers turned to UNIX help to address these problems and sellers of systems gradually with commercial systems based on UNIX. UNIX is a portable operating system whose source code could be easily accepted, and he had a good reputation and a loyal customer base established under small, but R & D institutions and universities. Most vendors licensed databases or sources of the University of California at Berkeley and AT & T (r) (two bases all other sources). Licensed and extensively modified the source closely linked to them produce their own system architectures up to 100 variants of UNIX ownership. Most of these systems were (and are) neither source nor binary compatible with each other, and most are specific hardware.
With the advent of RISC technology and the breakup of AT & T began UNIX systems group to grow significantly in the 1980s. The term “open systems” was invented. Customers who improved portability and interoperability between the many variants of UNIX to require compatible. Over the years, a number of coalitions (such as UNIX International), formed to try to gain control and consolidation of class UNIX systems, but their success was limited. Gradually, the industry switched to standards as a means of achieving portability and interoperability benefits that customers wanted. However, the UNIX standards and standards organizations are increasingly (as the provider coalitions), leading to more confusion and frustration for UNIX clients. The category
UNIX systems is essentially a class-based systems, applications, and not a class of operating systems. Customers choose a first application, for example, a high-end CAD, and then figure out what different systems, it runs on, and select one. The final selection includes a variety of criteria such as price / performance, service and support. Customers are generally not self-select, UNIX or UNIX-variant they want. UNIX is simple with the package if they chose a system to acquire run their applications. The UNIX
category can be divided into technical and economic markets: 87% of UNIX technical purchased bought RISC workstations to run applications, specific techniques, 74% of the commercial UNIX systems are sold, are multi-user – / servers / midrange systems, applications, especially for the execution of online business or vertical. The category
UNIX systems is extremely fragmented. Only two suppliers account for about 10% of shipments of licensed Unix variants (So (r) and SCO), 12 of the top 15 providers have market shares of 5% or less (based on 1991 actual unit shipments, Source: IDC) . This fragmentation is the fact that most customers end up buying is not really a choice UNIX UNIX itself, so that the smaller variants UNIX customer base and very dedicated explained.
is designed to maintain compatibility with applications written for MS-DOS, Windows for MS-DOS, OS / 2 and POSIX. It was an ambitious goal, because it meant that Windows NT would be the application programming interfaces (APIs) and runtime environments that provide their native operating systems normally. The developers of Windows NT called achieves its goal by implementing the reconciliation of a number of emulators operating environment subsystems of the environment. Emulators form an intermediate layer between user applications and the underlying kernel NT operating system.
user applications and subsystems of the environment work together in a client / server relationship. Each subsystem acts as a server environment that supports the application programming interfaces to a different operating system. Each user’s application acts as a client of a subsystem of the environment, because it made the application programming interface used by the subsystem. To communicate with the client and server applications environmental subsystem with each other via a message-based protocol.
the heart of the Windows NT operating system is a collection of components of the operating system called NT Executive. Components work of the executive branch to form an advanced general purpose operating system. They provide mechanisms for: ….. Interprocess communication
preemptive multitasking
symmetric multiprocessing virtual memory management units
Input / Output
security.
Each component of the Executive offers a range of functions, commonly known as mother tongue or services of the Executive Services. Together, these services are the application programming interface (API) of the NT Executive.
subsystems of the environment, applications that require NT Executive Services. Each operating system environment emulates another system. For example, the environment subsystem supports OS / 2, all functions of the Application Programming Interface Application mode OS / 2 characters. It provides these applications with a runtime environment that looks and acts like a native OS / 2 Internal subsystems of the environment do call NT services executive most of their work. The NT Executive Services do offer general-purpose mechanisms most of the tasks of the operating system. However, the subsystems have all the features that are specifically for an operating system environments.
Applications user, such as subsystems of the environment, running on the NT Executive. Unlike subsystems of the environment, all user applications do not directly call the Executive Services. Instead, they call the application programming interfaces provided by the subsystems of the environment available. Subsystems, please call Executive Services are required to implement their application programming interface functions.
Windows NT provides users with an interface similar to Windows 3.1. This user interface is through the subsystem of Windows NT 32-bit Windows (Win32) provided. The Win32 subsystem has sole responsibility for the display on the monitor output of the system and the management of user input. Architecturally, this means that the subsystems of the environment need to call other functions of the Win32 subsystem to generate an output on the screen. It also means that the Win32 subsystem to user input actions to pass on other subsystems of the environment when the user interacts with their windows.
Windows NT compatibility with the device drivers for MS-DOS or Windows for MS-DOS. Instead, he takes a new layer of device driver architecture that provides many advantages in terms of flexibility, maintainability and portability. The architecture of Windows NT device driver requires, that new drivers are written before Windows NT can be compatible with existing equipment. When writing a new driver takes a lot of development work by Microsoft and independent hardware vendors (IHVs), most hardware devices supported by Windows for MS-DOS with new drivers that came with will be the final product supports Windows NT.
The device driver architecture is modular. It allows large device driver (monolithic) in small independent films for device drivers is shared. A driver that common functionality should only be written once. Drivers in adjacent layers can then simply call the device driver to do their work together. Support for new devices is easier Windows NT, that most operating systems, because only certain hardware driver needs to be rewritten.
new architecture of Windows NT device driver provides a structure headed by the compatibility with existing systems (eg Installable File, FAT and HPFS) and networks (such as Novell and Banyan Vines) was relatively easy to achieve. File systems and network redirectors as layered drivers that connect easily to any platform, Windows NT multi-processor implemented in the new architecture of Windows NT device drivers
must meet the following conditions are met.
All processors are identical, and all the coprocessors are either identical or not has a coprocessor. All
sharing memory and CPU have uniform access to memory. In a platform balanced
each CPU can access the store to take a break, and Access Control I / O registers. In an asymmetric platform a processor all interrupts occurs for one or more slave processors.
Windows NT was designed to run on the same uniprocessor and symmetric multiprocessor platforms
a UNIX system can be regarded as inherently hierarchical. At the highest level is the physical hardware, consisting of the CPU or CPUs, memory and disk space, terminals and other devices.
on the next layer is the UNIX operating system itself, the function of the operating system is to allow access to and control equipment and provide an interface that other programs can use to access to material resources within the machine without have a complete knowledge that contains the machine. This system call allows users to create and manage programs, processes, files and other resources. Programs make system calls arguments by loading into memory registers and then issue instructions to move traps from user mode to kernel mode to boot UNIX. Since there is no way to capture written, the statements in C, is a standard library are available on the operating system, using a method call system.
The next layer consists of common instruments, such as shells, editors, compilers, etc., and these are programs that the user runs a terminal. They use the operating system to access the hardware in order to fulfill their tasks and are usually run in a position to different hardware configurations, without any knowledge of them.
There are two main parts in the UNIX kernel to distinguish the more or less. At the lowest level is the core depends on the machine. This is a piece of code, which consists of interrupt handlers, the low-level I / O drivers and some system software memory management. As with most Unix operating system, it is written mostly in C, but because it directly with the machinery and plant-specific treatment, it must be written from scratch, when UNIX is ported to a new machine. The kernel uses the lowest level since the machine instruction processor, why change it for every other processor needs.
However, the core is independent of the engine has the same on all types of machines, since it is not as tight performed on a specific part of hardware fits. The machine-independent code includes call management system, process management, planning, pipes, signals, memory paging and swapping memory functions, the file system, and higher system I / O. The machine-independent part of the core by far the larger of the two sections, so it can be ported to UNIX, new hardware is relatively easy.
Unix does not use the DOS and Windows device drivers, the idea independently for each element of the additional hardware that is not placed under the control of the BIOS in the device and therefore it must all be recompiled once the hardware is added or removed, the kernel that need to be updated with new information. This is equivalent to adding a device driver for a configuration file in DOS or Windows, then restart your computer. However, it is a lengthy process to achieve. Memory Management
Windows NT provides a flat address space 32-bit, half of which is reserved for the operating system, and the other half available to the process. This provides 2 gigabytes of separate demand-paged virtual memory per process. This memory is accessible to software developers through the standard malloc () and free () memory allocation and deallocation routines, as well as some advanced features specific to Windows NT mechanisms.
want more functionality for a programmer to control memory, Windows NT also provides virtual memory and heap management API.
the advantage of using the programming interface of the virtual memory (VirtualAlloc (), VirtualLock (), virtual query (), etc.) is that the developers much more control over whether the memory-support has (committed memory in the page file (swap file) to manage the physical memory overcommitment) is explicitly marked and removed from the available pool of free blocks. Malloc () is assumed to every call that require memory available when they return from the function call to use. With functions VirtualAlloc () and associated memory is allocated, but not the obligation, to the page on which access has been affected. With the ability to control the application to the policy of engagement with the access, fewer system resources are used. The tradeoff is that the application must also be able to manage the state (probably with Structured Exception Handling) of a memory access real force commitment.
heap APIs are provided to make life easier for applications with memory stack discipline. Piles can be activated, every culture / narrowing with subsequent access. Can synchronize access to heap-allocated objects either explicitly through synchronization, Windows NT, or with a suitable place to build a stack to be done. All memory access in the special covenant between threads in the process synchronized.
dump files in Windows NT provided. This provides a convenient way, data on the hard disk as memory, the Windows NT paging access management kernel. This memory can be between processes with CreateFileMapping () by MapViewOfFile () followed be shared.
Windows NT provides a Thread Local Storage (TLS) to the needs of multi-threaded applications needs. Each thread of a sub-process has its own stack, and can have its own memory to store various information.
Windows NT is the first operating system to provide a consistent API across multiple platforms multithreading. A wire is thread in a process that divides a state of the global memory with another son of the frame (if any). If a process in Windows NT is created, memory is allocated for them, a state established in the system, and a thread object is created. To start a thread running in a process that is the call of CreateThread () is used, as a function pointer is passed by lpStartAddr, this address can be a valid address in an application process.
Windows NT supports a number of different types of multiprocessing hardware. In these drawings, it is for different processors to execute multiple threads simultaneously a request. Be sure to use threads in an application to synchronize access to shared resources between threads. Fortunately, Windows NT has
synchronization systems ranging Most Unix developers do not use threads in their applications, there is no support for compatible between UNIX platforms
handles n have no direct equivalent of UNIX; .. However, they are very important for Win32 and merit discussion. When the kernel objects (eg son, processes, files, semaphores, mutexes, events, pipes, mail slots and communication equipment) will be created or opened using the Win32 API returns a handle. This handle is a 32-bit size, an index in a specific table to be treated this process. Handles have ACLs, or Access Control Lists are connected using Windows NT to check them against the rights of the safety of the procedure. Handles can explicitly creating them (usually when an object is created) are obtained after open surgery (eg Open Event ()) on a named object in the system, inherited as a result of a CreateProcess () operation (a child process inherits an open handle of the parent process if the inheritance was given during the original handle has been created, and if the process with the Son “was created inherit handles” flag), or “given” by DuplicateHandle (). It is important to note that when one of these mechanisms is used, a handful is meaningless in the context of a process.
Example Suppose a process called event create () to a handle that will return 0x1FFE with the ordinal value. This event is used to coordinate between the various processes. Method 2 must somehow get a handle to the event that an established procedure. If the process is a kind of “concerns” about using the correct value is 0x1FFE, there is no access to the event created by a process, since this value is meaningless handle in process 2 If, instead, a process called DuplicateHandle () with the handle of the process 2 (purchased by calling OpenProcess () with the ID of the process of 2), a handle that can be used by the two methods is created. This value can be communicated back to treat a handful to an IPC mechanism.
handles that for synchronization (mutexes, semaphores, events) are used as well, those in the asynchronous I / O (pipes may be involved can be named, files, communications) with WaitForObject () and WaitForMultipleObject ( ), the functionally of the select () call in UNIX. Before
were most UNIX systems on the basis of permutation 3BSD are used. If there were processes that could be kept in physical memory, some of them were exchanged on the disc or drum storage. A process has always been mixed up in all its parts are replaced, and thus any process was still running in memory or on disk as a complete unit.
Any movement between memory and hard drive from the top level of a split-level scheduler for swap space (memory) was known to be treated. Swapping memory to disk was created, if the kernel does not free physical memory.
choose a victim, to drive away, the swapper would start the processes that were blocked by something so wait like Terminal input or a print job to answer. If more than one method was found, was the process, its priority, the higher the maximum dwell time was chosen as a candidate for swapping to disk. That was a process that had consumed a large amount of CPU time recently is a good candidate, as it was, what had been long in the memory, although it usually did, I / O. If no process has been blocked in memory, then process a loan based on the same criteria as a priority of the residence time was chosen.
from 3BSD memory paging was for the operating system for the management of growing programs that were written. 4BSD Both System V and implement demand paging in the same way. The theory of demand paging, is that a process is not completely open to residents of memory to continue execution. All that is really needed is the structure of the site user tables. If they are traded in the memory, the process is regarded as sufficient memory and can be programmed to perform. Pages of text, data and stack segments to be dynamic, one at a time when it is referenced, the memory remains free for other tasks, rather than fill it with data tables that can be referenced only once. If the user page table structure and not in memory, the process can not occur until the swap-over, they are running in memory from the hard disk.
numbering is implemented in part through the core part and in part by a process called daemon page. As a demon, the demon side is rotated at regular intervals so that it can look to see if there a job to do for him. If it is that the number of free pages in memory is too small to find, he launched a campaign to free more pages.
When a process is started, it can cause a page fault, because one of its sides is not a resident of the store. If a page fault occurs, the operating system is the first page without a frame on the listings page frame, it removes from the list and read the page in it. If the list of pages with no frame is empty, the process must be interrupted until the demon side time to have been a part of the free will side by another process.
The page replacement algorithm is executed by the daemon-side. At an interval of play (typically 250 milliseconds, but varying from system to system) is activated to see if the number of free frames is at least one parameter of the system lotsfree (usually at 1/4 of the working memory) are known. If not enough frames page, transfer the page daemon page memory on the hard drive starts up, the value of the parameter lotsfree of page frames available. Alternatively, if the daemon detects that the page on the longer side frame lotsfree free list, it n ‘offices do not have to clothe and lands his next call from the system. If the machine has plenty of memory and few running processes, it is inactive for most of the time.
side daemon uses a modified version of the algorithm of the Clock. This is a global algorithm, which means that if you delete a page, it does not take into account that the site is cleared meaning. Thus, the number of pages of each process, it varies over time allocated depends both on its own requirements and other process requirements. The size of the data segment, depending on what was requested, assigned to the operating system, tracking and unallocated memory blocks while feature MemAlloc manages the content of the data segment.
by
by