Skip to main content

AI Agents: What They Are and How They Will Change Work

Artificial intelligence has moved beyond simply answering questions and generating text. A new generation of AI systems—known as AI agents—is emerging with the ability to plan tasks, use tools, make decisions, and complete multi-step workflows with less human intervention. From managing emails and analyzing data to writing software and assisting customers, AI agents could significantly change how people work. What Are AI Agents? An AI agent is a software system that can perceive information, reason about a goal, take actions, and adapt based on the results. Traditional AI tools usually respond to a specific instruction. For example, you might ask an AI chatbot to summarize a document, and it provides a summary. An AI agent can go further. You could give an agent a goal such as: "Research three competitors, compare their pricing, summarize their main features, and prepare a report." The agent may then: 1) Understand the objective. 2) Break the task into smaller steps. 3) Searc...

Application I/O Interface

Application I/O Interface

* User application access to a many types of different devices is accomplished through layering, and through encapsulating all of the device-specific code into device drivers, while application layers are gives with a common interface for all ( or at least large general categories of ) devices.
* Devices differ on many different dimensions, as outlined in Figure below:
* Most devices can be grouped as either block I/O, character I/O, memory mapped file access, or network sockets. A few devices are unusual, such as time-of-day clock and the system timer.
* Most OSes also have an escape, or back door, which permits applications to send 
commands directly to device drivers if needed. In UNIX this is the ioctl( ) system call ( I/O Control ). Ioctl( ) takes three arguments - The file descriptor for the device driver being processed, an integer indicating the desired function to be performed, and an address used for communicating or transferring additional information.

Block and Character Devices
* Block devices are processed a block at a time, and are indicated by a "b" as the first 
character in a long listing on UNIX systems. Operations supported adds read(), write( ), and seek( ).
• Accessing blocks on a hard drive directly ( without going by the file system
structure ) is called raw I/O, and can speed up specific operations by bypassing the 
buffering and locking normally conducted by the OS. ( It then becomes the application's responsibility to control those issues. )
• A new alternative is direct I/O, which uses the normal file system access, but 
which disables buffering and locking operations.
* Memory-mapped file I/O can be layered on high of block-device drivers.
• Other than reading in the entire file, it is mapped to a range of memory addresses, and then paged into memory as needed using the virtual memory system.
• Access to the file is then finished through normal memory accesses, rather 
than through write( ) and read( ) system calls. This approach is commonly used 
for executable program code.
* Character devices are implemented one byte at a time, and are indicated by a "c" in UNIX long listings. Supported operations include get( ) and put( ), with more advanced functionality such as reading an whole line supported by higher-level library routines.

Network Devices
* Because network process is inherently different from local disk access, most systems provide a separate interface for network devices.
* One common and famous interface is the socket interface, which acts like a cable or pipeline connecting two networked entities. Data can be put into the socket at one terminal, and read out sequentially at the other terminal. Sockets are generally full-duplex, allowing for bi-directional data transfer.
* The select( ) system call permits servers (or other applications ) to identify sockets which have data waiting, without having to poll all available sockets.

Clocks and Timers
* Three types of time services are commonly required in modern systems:
• Get the current time of day.
• Get the elapsed time ( system or wall clock ) since a before event.
• Set a timer to start event X at time T.
* Unfortunately time operations are not quality across all systems.
* A programmable interrupt timer, PIT can be used to start operations and to measure elapsed time. It can be set to start an interrupt at a specific future time, or to trigger interrupts periodically on a regular basis.
• The scheduler uses a PIT to start interrupts for ending time slices.
• The disk system may use a PIT to schedule timing maintenance cleanup, such as flushing buffers to disk.
• Networks use PIT to delete or repeat operations that are taking too long to 
complete. I.e. resending packets if an acceptence is not received before the timer goes off.
• More timers than actually subsist can be simulated by maintaining an ordered list of timer events, and setting the physical timer to go off when the next scheduled 
event should occur.
* On most systems the system clock is implemented by counting interrupts generated by the PIT. Unfortunately this is restricted in its resolution to the interrupt frequency of the PIT, and may be subject to some drift over time. An alternate approach is to provide direct access to a high frequency hardware counter, which provides much higher resolution and accuracy, but which does not support interrupts.

Blocking and Non-blocking I/O
* With blocking I/O a process is transfer to the wait queue when an I/O request is made, and moved back to the ready queue when the request completes, allowing other processes to run in the meantime.
* With non-blocking I/O the I/O request returns suddenly, whether the requested I/O operation has ( completely ) occurred or not. This permits the process to check for available data without getting hung completely if it is not there.
* One method for programmers to implement non-blocking I/O is to have a multi-threaded application, in which one thread makes blocking I/O calls ( say to read a keyboard or mouse ), while other threads continue to modify the screen or perform other tasks.
* A subtle difference of the non-blocking I/O is the asynchronous I/O, in which the I/O request returns immediately allowing the process to continue on with other tasks, and then the process is notified ( via changing a process variable, or a software interrupt, or a callback function ) when the I/O operation has completed and the data is available for use. ( The regular non-blocking I/O returns suddenly with whatever results are available, but does not complete the operation and notify the process later. )

Popular posts from this blog

Program threads

Program Threats * There are many familiar threats to modern systems. Only a few are discussed here. Trojan Horse * A Trojan Horse is a program that secretly performs some maliciousness in extra to its visible actions. * Some Trojan horses are deliberately written as such, and others are the result of legitimate programs that have become infected with viruses, (see below.) * One dangerous opening for Trojan horses is long search paths, and in specific paths which include the current directory (“.”) as part of the path. If a dangerous program having the same name as a authorized program (or a common mis-spelling, such as "sl" instead of "ls”) is placed anywhere on the path, then an unsuspecting user may be fooled  into running the wrong program by mistake. * Another classic Trojan Horse is a login imitator, which records a users account name and password, problems a "password incorrect" message, and then logs off the system. The user then tries again (with a prop...

MAGNETISM

Magnetism: * The word magnetism is derived from the iron ore magnetite (Fe3O4). which was found in the island of magnesia in Greece. Gilbert who laid the foundation for  magnetism and had proposed that Earth itself behaves as a giant bar magnet. The field at the surface of the Earth is  roughly to 10^-4 T and the field extends upto a height of nearly five times the radius of the Earth.  Causes of the Earth’s magnetism: * The exact cause of the Earth’s magnetism is not known even today. Some important factors which may be the cause of Earth’s magnetism are: 1. Magnetic masses in the Earth.  2. Electric currents in the Earth.  3. Electric currents in the upper regions of the atmosphere.  4. Radiations from the Sun.  5. Action of moon etc.  *It is believed that the Earth’s magnetic field is due to the molten charged metallic fluid inside the Earth surface with a core of radius about 3500 km compared to the Earth’s radius of 6400 km.  Basic prope...

Organic Farming: A Pathway to Sustainable Agricultural Production

Introduction : In recent years, organic farming has gained considerable attention as a sustainable alternative to conventional agriculture. As concerns over environmental degradation, food security, and public health rise, organic farming offers a holistic approach to agricultural production that aligns with nature’s own processes. This blog post explores the significance of organic farming in promoting sustainable agriculture, its key principles, and the benefits it offers for farmers, consumers, and the environment. Understanding Organic Farming Organic farming is an agricultural practice that emphasizes the use of natural inputs and processes to cultivate crops and raise livestock. Unlike conventional farming, which often relies on synthetic chemicals, genetically modified organisms (GMOs), and monoculture practices, organic farming seeks to work in harmony with the environment. It avoids synthetic pesticides and fertilizers, instead focusing on building healthy soil, fostering biod...