Subscribe by Email


Showing posts with label Scheduler. Show all posts
Showing posts with label Scheduler. Show all posts

Tuesday, June 4, 2013

Explain briefly Deadlock Avoidance and Detection?

Deadlocks are a serious issue that needs to be avoided since it can cause the whole system to hang or crash.

What is Deadlock Avoidance?


- Avoiding a deadlock is possible only if certain information regarding the processes is available with the operating system.
- This information has to be made available to the OS just before the resources are allocated to the processes.
- These are the processes that are to be consumed by the process in its lifetime.
- For every resource request made by the process, any potential threats are checked by the system i.e., whether granting the request of the process will send it in to an unsafe zone or not.
- If it is so then there are possibilities that the system could enter a deadlock.
- Therefore, only those requests are granted by the process that will ensure a safe state of the process.
- It is important for the system to determine whether the next level of the process will be safe or unsafe.
- There are 3 things that the operating system must know at any before or after the execution of the process:
1. The currently available resources.
2. The resources currently allocated to the processes.
3. Resources to be required and released in the future by these processes.

- It is possible that a process might be in an unsafe state but still may not cause a deadlock.
- By the notion of the safe and unsafe state of the process we refer to the system’s ability of entering in to a deadlock.
An example will make it clearer:
- Consider a resource A requested by a process which would make the process state unsafe.
- At the same time it releases another resource say B preventing the circular wait of the resources.
- In such a situation, the system is said to be in an unsafe state though not necessarily in a deadlock.
- There are various algorithms that have been designed for deadlock avoidance and one such is the banker’s algorithm.
- To use this algorithm knowledge about the resource usage limit is required in advance.
-  It is impossible for most of the systems to know what a process will request for in advance.
- This only implies that the deadlock avoidance is also not possible here.
- There are other two algorithms for achieving this task namely wound/ wait and wait/ die algorithms.
- Each of them makes use of a symmetry breaking technique.

What is Deadlock Detection?


- Deadlocks are free to occur under the implementation of this concept.
- Then through the state of the system, the occurrence of the deadlock is confirmed and subsequently mended.
- Here, the resource allocation activities are tracked along with the process states by certain algorithms.
- After this, the algorithm is used for removing the deadlock.
- Deadlock detection is quite easy since the OS scheduler knows about the resources that have been locked by the processes.
- Model checking is one of the techniques used for deadlock detection.
- In this a finite state model is created up on which a progress analysis of the process is carried out and all the terminal sets of the model are found.
- Each of these stands for a deadlock.
- Correction of the deadlock can be done by any of the below mentioned methods after the deadlock has been detected:
1. Process termination: This is about aborting one or more of the processes that cause the deadlock thus ensuring a certain and speedy removal of the deadlock. But this method might prove to be a little expensive because of the loss of the partial computations.
2. Resource preemption: This is about a successive preemption of the allocated resources until the breakdown of the deadlock.


Monday, January 7, 2013

What are benefits of LabVIEW(Laboratory virtual instrumentation engineering workbench)?


Laboratory virtual instrumentation engineering workbench (or labview as it is commonly known) is a platform developed for designing systems and presents a development environment.

Benefits of LabView


1. Interfacing
- The extensive support that labview provides for access to instrumentation hardware is one of the key benefits of it. 
- In addition to the drivers, a number of abstraction layers are available for inclusion for a variety of buses as well as instruments. 
- These drivers and abstraction layers are presented as the graphical nodes. 
- A standard interface is provided by the abstraction layers so that communication with the other hardware devices could be established. 
- A lot of program development time is saved by the driver interfaces that are provided. 
That is why people having limited coding experience of writing the programs can even develop programs and easily deploy the test solutions in a time less than what it might take with the conventional programming systems. 
- DAQmxBase is a brand new driver topology.
- It comprises mostly of the G – coded components having a few register calls via national instrument measurement hardware driver development kit (DDR) functions.
- It is known to provide hardware access that is independent of the platform. 
- This access is to instrumentation devices and a number of other data acquisition devices. 
- This new driver is available for the following platforms:
a)    Windows
b)    Mac os x
c)    Linux
- An interface for .net frame work applications is also provided by the labview using    which one can use XML files and data bases in one’s automation projects.

2. Code Compilation
- When it comes to performance, labview is at its best as it provides you even a compiler that can produce a native code for platform level of CPU. 
- Firstly, the graphical code is converted in to machine executable code by passing it through an interpreter and compiler.
- The syntax of the labview is to enforced during the code editing process only and then it is compiled in to machine level code whenever execution command is given. 
- The executable code is executed by the run time engine of labview which already has some pre-compiled code that can be used to perform usual tasks that have been already defined by the G – language. 
- Also, the compile time is reduced by the run time engine. 
- In addition to this it also offers you a consistent interface that can be used for a number of following:
a)    Operating systems
b)    Graphic systems
c)    Hardware components and so on.
- The code is made portable across the platform because of the run – time environment. 
- Labview code compiles slower than the equivalent code in C and this difference gets larger with the program optimization.

3. Large Libraries
- A large number of libraries with a large number of functions such as those mentioned below are provided with the labview package:
a)    Functions for data acquisition
b)    Signal generation
c)    Mathematics
d)    Statistics
e)    Signal analysis
f)     Signal conditioning and so on.
- The package also has a number of graphical interface elements. 
- The package has numerous advanced mathematics blocks which can carry out functions such as filters, integration and so on.
- Many other specialized capabilities that are associated with the data that has been captured with the help of hardware sensors. 
- In addition to all this, labview comes with mathscript which is nothing but a text based programming component having some additional functionality such as for mathematics, analysis, signal processing and so on. 
- This component and graphical programming can be integrated together via the script nodes and using a syntax compatible enough with MATLAB.

4. Code re use
5. Parallel programming
6. Ecosystem
7. User community


Friday, January 4, 2013

Explain LabVIEW (Laboratory virtual instrumentation engineering workbench)?


Laboratory virtual instrumentation engineering workbench (or labview as it is commonly known) is a platform developed for designing systems and presents a development environment. 
- The environment it provides is for the development of visual programming language from what are known as the national instruments. 
- The graphical language that is usually used is commonly known as “G”. 
- Make sure that you do not yourselves with G code.
- This graphical language had its release for the Apple Macintosh in the year of 1986. 

Labview is used for a number of purposes few of which are:
  1. Data acquisition
  2. Instrument control
  3. Industrial automation and so on.
All these functions can be carried out on a number of platforms including:
a)    Unix
b)    Linux
c)    Mac OS X and
d)    Microsoft windows

- Labview 2012 which is the latest version of labview has been released recently in year 2012 in the month of August. 
- 'G' is actually a data flow programming language. 
- The structure of the graphical block diagram helps in determining the execution. 
- This graphical block diagram is actually composed of the LV source code using which the different function nodes can be connected via wires. 
- Variables are propagated by these wires. 
- Any node for which all the input data is available can be put in to execution immediately. 
- It involves a number of modes simultaneously, parallel execution is very much possible in G.
- Built-in scheduler is automatically exploited through multi–threading and multi– processing hardware.
- Multiple OS threads are multiplexed by the built – in scheduler over the nodes that are ready to be executed. 
- User interfaces called front panels are created by the labview and incorporated in to the development cycle. 
- The programs or subroutines of the labview are termed as virtual instruments or VIs. 

There are 3 main components of each VI namely:
  1. A block diagram
  2. A front panel and
  3. A connector panel
- The third component i.e., the connector panel is used for the representation of the virtual instrument in the other virtual instruments which call this one. 
- Front panel comprises of the indicators and controls, thus allowing the operator to input or extract data from an active virtual instrument. 
- Another feature of the front panel is that it also serves as a programmatic interface. 

Thus, a virtual instrument can be run in either of the two ways:
  1. As a program: The front panel serves as a user interface.
  2. As a node on to the block diagram: The inputs and outputs for a particular node are defined by the front panel through the connector panel.
- Any of the virtual instruments can be tested very easily before it is embedded in to the main program as a subroutine. 
- Even non-programmers can take the benefit of the graphical approach since using it, they can build programs by just dragging and dropping the lab equipment’s’ virtual representation with which they have some familiarity. 
- Advantage is that the labview programming environment comes with documentation and some included examples which can be used to work out small applications very easily. 
- There is one disadvantage also which is that one might underestimate the expertise required from implementing high quality G – programming.
- Also, as far as complex programming or large scale programming is concerned it is a must for the programmer to have an extensive knowledge regarding the labview syntax and the topology it uses for the management of memory. 
- The advanced development system of the labview lets you create stand –a lone applications also.


Facebook activity