Operating System Components and Services

Tom Kelliher, CS 318

Jan. 26, 1998

Announcements:

From last time:

  1. System architecture issues.

  2. I/O programming.

  3. Memory hierarchy.

  4. Hardware protection.

Outline:

  1. Operating system components.

  2. System calls.

Assignment: Finish reading Chapter 3.

Operating System Components

From the virtual machine point of view (also resource management)

These components reflect the services made available by the O.S.

  1. Process Management

  2. Memory Management

    1. Maintain bookkeeping information

    2. Map processes to memory locations

    3. Allocate/deallocate memory space as requested/required

  3. I/O Device Management

    1. Disk management functions such as free space management, storage allocation, fragmentation removal, head scheduling

    2. Consistent, convenient software to I/O device interface through buffering/caching, custom drivers for each device.

  4. File System

    Built on top of disk management

    1. File creation/deletion.

    2. Support for hierarchical file systems

    3. Update/retrieval operations: read, write, append, seek

    4. Mapping of files to secondary storage

  5. Protection

    Controlling access to the system

    1. Resources --- CPU cycles, memory, files, devices

    2. Users --- authentication, communication

    3. Mechanisms, not policies

  6. Network Management

    Often built on top of file system

    1. TCP/IP, IPX, IPng

    2. Connection/Routing strategies

    3. ``Circuit'' management --- circuit, message, packet switching

    4. Communication mechanism

    5. Data/Process migration

  7. Network Services (Distributed Computing)

    Built on top of networking

    1. Email, messaging (Exchange)

    2. FTP

    3. gopher, www

    4. Distributed file systems --- NFS, AFS, LAN Manager

    5. Name service --- DNS, YP, NIS

    6. Replication --- gossip, ISIS

    7. Security --- kerberos

  8. User Interface

    1. Character-Oriented shell --- sh, csh, command.com ( User replaceable)

    2. GUI --- X, Win32

System Calls provide these services

Some of the Unix system calls:

(Refer to man 2.)

  1. Process Management

    Scheduling, deadlock detection is transparent.

    1. fork, vfork, exit, exec

    2. wait

    3. signals, pipes, streams, sockets

  2. Memory management

    For the most part, transparent to the user.

    1. malloc, free

  3. I/O Device Management

    Devices are treated as files, so I/O devices are supported by the file system.

  4. File System

    1. creat, open, close

    2. lseek, read, write

    3. stat, chmod, chown

    4. link, unlink

    5. mkdir, rmdir

    6. sync

  5. Communication

    Two models:

    1. Message passing
      1. Processes communicate by passing messages --- mailbox model.

      2. Primitives: send, receive.

      3. Each Process has a private address space.

      4. Perfect for inter-processor communication. No synchronization problems. Latency can be a problem. Queueing.

    2. Shared memory
      1. Processes communicate by sharing memory --- bulletin board model.

      2. Primitives are implicit once spaces are mapped.

      3. Good for large amounts of intra-processor communication. Synchronization problems.

    Issues: naming, security, transparency, replication, etc.

    Message passing

    1. socket, bind, accept, read.

    2. socket, connect, write.

    Shared memory:

    1. mmap.



Thomas P. Kelliher
Thu Jan 22 18:52:25 EST 1998
Tom Kelliher