Solaris is an operating system derived from the original Unix kernel variants were developed in 1969 by the American Telephone and Telegraph (AT & T). Solaris is generally used to run a web server and database server.
Since the Sun started to build Solaris, the company's market share is intended for middle to top (Enterprise).
Solaris also build an operating system that focuses on how Solaris runs well and stable by comparing the operating system with other Unix derivatives. Solaris provides the ability Multiprocessor support, how to overcome the deadlock, how to maintain and increase the CPU and how to manage Memory good technique. If the comparison multiprocessor machines that are comparable between the Solaris 10 x86, Red Hat Enterprise Linux 4, Red Hat Enterprise Linux 5 and Windows Server 2003 R2. Solaris is superior in stability, efficiency, and also has the best performance on an operating system.
Multiprocessor Support
Kernel Solaris has the ability to fully preemtible which means that all threads, including threads that support the activities of the kernel itself can be postponed to run a thread with a higher priority has a soft realtime scheduling symmetrically multiprocessing support that optimize the work of all the processor on the same level, thus providing equal access to quality hardware and other computer Also supports user-level multithreading.
Multiprocessor support was first added to the Solaris kernel, developers more emphasis on the ability of the kernel, because the kernel is stable, able to increase concurrency, and is also able to support and control more than one thread in a user process. Thread itself able to carry out system calls and handle page faults independently. To make the operation of the multiprocessor kernel support, thread control process to run simultaneously on different processors. The developers also want to kernel built can operate soft realtime, which is needed to control excessive scheduling and preemption is a temporary measure in the process of being carried out by the computer system, to continue the process at a later time. And preemption is possible to execute on many points of the process.
Kernel thread uses very little resources, and the transition kernel threadnya relatively very little because it does not require a change in the virtual memory space.
Kernel thread also has the ability to fully Preemptible and can schedule based on realtime priority. Solaris is able to use kernel threads to enable asynchronous kernel activity, such as writing asynchronous disk. This eliminates the complications of the idle loop and replace it with a thread scheduling independently.
This increases concurrency because the action is handled by a separate CPU and provides asynchronous activities on priority so it can be scheduled appropriately. Kernel thread also handles interrupt.
If the interrupt thread is found, it will lock the blocks are experiencing the interrups and allows to remove and prevent deadlocks.
Because creating a new thread each time an interrupt occurs it is very time consuming, then the kernel set up the parts to initialize the interrupt thread, and when an interrupt occurs, the work unit are transferred to the pile thread interrupt.
Diagram Multithreading Levels and Relationships
The main feature in multiprocessor Solaris kernel is to support the Lightweight Processes (LWPs). Support LWPs itself is supporting some control of kernel threads on many manual processes, as shown in Figure 2. They share the space with the process, and process resources. Kernel support the implementation of LWPs by linking the use of kernel threads with each LWP. Each user level library using LWPs to implement user-level threads. This allows the user to have thousands of threads without imposing kernels.
A. Deadlocks
As discussed earlier, the Solaris kernel designed to prevent deadlocks caused by the thread interrupt. This is done by blocking interrupt threads, if found then the variable synchronization will be locked and wait until the critical section has been completed. This kernel locking strategies used to lock-based data. In this method, all data is protected by the synchronization object.
The kernel also implements preventive use locking deadlocks Mutual Exclusion (mutexes) to prevent more than one thread of each process when it was discovered locking. It avoids the race condition when accessing data simultaneously. If the mutex lock can not be set, then the default policy is blocking the way toward the locking around the processor. This status will continue to be repeated if not running a process and stops the rotation, then his status will be idle. This provides fast response with low overhead rate.
Detection deadlocks also implemented, these deadlocks caused by hierarchy violations are detected at runtime by using priority inheritance mechanism. Because this mechanism is not able to detect all deadlocks, some deadlocks that can not be detected is with varying conditions.
Virtual Memory
At the time of booting, Solaris dividing all memory into each page. Typically, split 4 kilobytes, and can range up to 4 megabytes. Solaris LRU algorithm using two-handed Second Chance for virtual memory system. All pages are given a second chance for a page to be in memory for a page that has been long in memory may be the page where a commonly used and will be used again. This is done by kernel thread on Solaris commonly called Scanner. The second occasion was realized with the reference bits set for a page. The first page accessed is located in front of the queue and the newly diakases are behind the queue. When a page fault, this algorithm does not directly change the page in front of the queue but first check bit reference. If the bit of reference is equal to zero, the page will immediately be replaced. If the reference bit equal to one, the page will be moved to the end of the queue and bit benchmark changed to zero, then repeat this process to a page that is now located in front of the queue.
Scanning is done periodically at the system and depending on the amount of free memory. Activity is under the scanner system lotsfree parameter (limit parameter to initiate paging of free memory available), the default is 1/64 of main memory. Pageout scannerkemudian will scan between the fixed limit slowscan and FastScan. If necessary, can also be configured to keep the scanner from use excessive CPU time.
After the memory drops below desfree, which defaults to half of lotsfree, will memicutimer who will try to get an average memory within 30 seconds on desfree.Jika as it will trigger soft swapping. In soft swapping, will exchange processes are idle for a certain period of time. Process idle standard is 20 seconds.
If the CPU spends more time than melakukanpekerjaan replace pages of useful (when averaged for 30 seconds drops below minfree [half of desfree] and free memory when it was under desfree), it will enter into swap. If there are processes that require large memory and requires a long time, the swap took alih.Bahkan run of decent work to swap out, and it nikmatmengambil work that has been running for a long time or a process that has been allocated a relatively large amount of memory.
Advantages and disadvantages solaris
- Free redistribution, each user can freely buy or provide the software by itself or as part of a collection of distributors.
- Derived works, everyone can modify and redistribute the code to the public.
- No discrimination, the code provided for everyone to be developed.
- ZFS is Restore Similar facilities like Restore feature in Windows operating systems.
- Many observations and debugging tool, such as tool monitoring system, modular debugger (MDB), dynamic tracing (D-Trace).
- Have some form virtulasasi, in addition to the operating system level virtualization like virtualisai in Zone Solaris, OpenSolaris also supports virtualization for xVM hypervisor, Logical Domains (LDoms), VirtualBox and can also run on VMware virtualization and several other frameworks.
- Having a high level of scalability. OpenSolaris can run on a single processor and multiprocessor systems with hundreds of CPU and RAM with terabyte size.
- Integration AMP stack (Apache, MySQL, PHP) to run a web server.
- Stable file system for database, server Internet, Intranet, file-server, Internet-client, Java development.
- Solaris can run on top of the processor that berspek x86, x64 and SPARC.
Deficiency
- The price of an expensive commercial operating systems (paid version).
- Deserving Linux innovations over time to give the impression to the commercial Unix systems.
- The Unix operating system version of the "almost" is not as good as useless commercial Unix operating system.
- Hardware drivers are not good.
Developed by Sun Microsystems. More used to the company.