Está en la página 1de 11




Assignment of CPI
1. Write difference between SCSI and IDE. Also state limitations and advantages of SCSI and IDE. Ans. Introduction to SCSI: SCSI is Small Computer System Interface and is a generalpurpose interface used for connecting many types of devices to a PC. SCSI is the most popular interface for attaching high-speed disk drives to higher-performance PCs, such as workstations or network servers. SCSI is also very flexible. SCSI is a bus that supports as many as 7 or 15 total devices. A single SCSI bus can support as many as 8 or 16 physical units called as SCSI IDs. SCSI is a fast interface. The latest Ultra4 SCSI version supports transfer speeds of up to 320 MB per seconds and Ultra5 will transfer at 640 MB per seconds.

SCSI Introduction to IDE: The earliest IDE drives were called hard cards and were nothing more than hard disks and controllers bolted together and plugged into a slot as a single unit. Compaq was the first to incorporate a special bus adapter in its system to adapt the 98 pin AT bus edge connector on the motherboard to a smaller 40 pin header style connector.


IDE Variations: There have been four types of IDE interfaces based on three bus standards. They are as follows: Serial AT Attachment (SATA) Parallel AT Attachment (PATA) XT IDE(based on 8 bit ISA) MCA IDE(based on 16 bit Micro Channel)

DIFFERENCE BETWEEN SCSI AND IDE: The following are the comparisons of SCSI and IDE/ATA Interface Factor Cost Performance low IDE/ATA SCSI Moderate high High in most situations

High for single devices or single tasking, moderate to low for multiple devices or multitasking Ease of High for small number of configuration devices ,moderate for and use large number of devices Expansion and Moderate number of devices Device type Moderate support Device High

Low to moderate for both small and large numbers of devices High

High Moderate

availability and selection Interface factor High System Moderate to poor resource usage Support for non Moderate pc platforms

Moderate to high Good Good

LIMITATIONS AND ADVANTAGES OF SCSI VS ATA Modern operating systems are multitasking and SCSI devices function independently of one another, unlike ATA. Therefore, data can be read and written to any of SCSI devices simultaneously. This enables smoother multitasking and increased overall data throughput. Increased fault tolerance and performance are readily implemented and supported in SCSI drivers. Ultra4 SCSI drivers offer advantages when compared with ATA. ATA allows only 2 devices per cable, whereas SCSI can connect up to 15 devices. SCSI allows external connections of up to 12 meters or more in length. ATA drivers have much less command overhead for a given sector transfer than do SCSI drives.

SCSI drives offer significant architectural advantages over ATA and other devices.

2. Write difference between SATA and PATA. Ans: Difference b/w SATA and PATA

Most SCSI drives are labeled such on the label that has the model and serial number on the drive. The connector to a SCSI drive is also different than an IDE drive. SCSI-1 Narrow uses a 50-pin connector SCSI-2 Wide uses a 68-pin connector SCSI-3 wide uses a 68-pin connector Ultra SCSI 160 uses an 80-pin connector IDE drives use a 40-pin flat ribbon cable connected to the controller port that is usually on the motherboard. SCSI controllers in servers are usually connected via a PCI slot in the server. The cables go from the controller in the PCI slot to the disks. Most PCs ship with IDE drives. Most servers ship with SCSI drives. The difference between the two drive types is how you access the data on the drive. IDE or "integrated drive electronics" are "smart" drives as most of the electronics that contain logic are located on the drives themselves. SCSI drives are "dumb" drives and the controller contains all the smarts. The main difference is performance. The parallel ATA standard is not much in use. Because sending data at rates faster than 133 mbps down a parallel ribbon cable has problems associated with it like signal, timing, electromagnetic interface (EMI). Hence to the problems serial ATA is preferred. Parallel ATA drives cant be plugged into serial ATA host adapters and vice versa. The serial ATA uses much thinner cables with only 7 pins that are easier to plug in.

Serial ATA is backward-compatible replacement for the parallel ATA physical storage interface. Configuration of serial ATA is also simpler because the jumper settings for master/slave are no longer necessary.

3. Explain the role of device drivers in DOS, LINUX & UNIX. Ans: Device drivers are the modules of an operating system that control hardware. DOS DRIVERS: The motherboard ROM and IBM BIO.COM or IOS.SYS files contain the basic drivers for allowing DOS to communicate with the console disk drives, serial and parallel ports, clock and other resources. There are 2 types of device drivers supported by MSDOS: 1. Character device drivers: Control peripheral devices that perform input and output of one character at a time such as terminal or printer. Each character device has a character logic name and an application program can use this name to open the device for input and output. 2. Block device drivers : It usually controls random access mass storage devices such as floppy disk drives and fixed disk although they can also be used to control non random access drives such as magnetic tape drives. Block device drivers do random I/O in pieces called blocks.

To create a device driver that DOS can install, do following: 1. Create a .COM file with a device header of start of the file. 2. Originate the code at 0 instead of 100h.

3. 4. 5. 6.

Set the next device header field. Set the attribute field of device header. Set the entry points for the interrupt and strategy routine. Fill the name of character device driver.

Linux/Unix device drivers: Anatomy of a Device Driver Device driver has three sides: one side talks to the rest of the kernel, one talks to the hardware, and one talks to the user:


Kernel Device driver


User space and kernel space When you write device drivers, its important to make the distinction between user space and kernel space.

Kernel space. Linux (which is a kernel) manages the machines hardware in a simple and efficient manner, offering the user a simple and uniform programming interface. In the same way, the kernel, and in particular its device drivers form a bridge or interface between the end-user/programmer and the hardware. Any subroutines or functions forming part of the kernel (modules and device drivers, for example) are considered to be part of kernel space. User space. End-user programs, like the UNIX shell or other GUI based applications (presenter for example), are part of the user space. Obviously, these applications need to interact with the systems hardware. However, they dont do so directly, but through the kernel supported functions.

User space where applications reside, and kernel space where modules or device drivers reside Interfacing functions between user space and kernel space The kernel offers several subroutines or functions in user space, which allow the end-user application programmer to interact with the hardware. Usually, in UNIX or Linux systems, this dialogue is performed through functions or subroutines in order to read and write files. The reason for this is that in UNIX devices are seen, from the point of view of the user, as files. On the other hand, in kernel space Linux also offers several functions or subroutines to perform the low level interactions directly with the hardware, and allow the transfer of information from kernel to user space. Usually, for each function in user space (allowing the use of devices or files), there exists an equivalent in kernel space (allowing the transfer of information from the kernel to the user and vice-versa). This is shown in Table 1, which is, at this point, empty. It will be filled when the different device drivers concepts are introduced. Events User functions Kernel functions Load module Open device Read device Write device Close device Remove module Table 1. Device driver events and their associated interfacing functions in kernel space and user space.