• some notions about os


    1. Multiprogramming system provide an environment in which the various resources
    (like CPU,memory,and peripheral devices) are utilized effectively,but they do
    not provide for user interaction with the computer system.
    2. Time sharing(or multitasking) is a logical extension of multiprogramming.
    In time sharing systems,the CPU executes multiple jobs by switching among them
    but the switches occur so frequently that the users can interact with each
    program while it is running.Time sharing requires an interactive(or hands-on)
    computer system,which provides direct communication between the user and the
    system.
    3.Interrupt driven.
        Modern operating systems are interrupt driven.If there are no processes to
    execute,no I/O devices to service,and no users to whom to respond,an operating
    system will sit quietly,waiting for something to happen.Events are almost
    always signaled by the occurrence of an interrupt or a trap.
        A trap (or an exception) is a software-generated interrupt caused either
    by an error(for example,division by zero or invalid memory access) or by a
    specific request from a user program that an operating-system service be perf-
    ormed.
       The interrupt-driven nature of an os defines that system's general structure
    For each type of interrupt, separate segments of code in the os determine what
    action should be taken.An interrupt service routine is provided that is
    responsible for dealing with the interrupt
    4.Dual-Mode operation
       In order to ensure the proper execution of the os,we must be able to distinguish
    between the execution of operating-system code and user defined code.The approach
    taken by most computer system is to provide hardware support that allows us to
    differentiate among various modes of execution.
       At the very least, we need two separate modes of operation:User mode and
    Kernel mode(also called supervisor mode,system mode,or privileged mode).A bit,
    called the mode bit,is added to the hardware of the computer to indicate the
    current mode:kernel(0) or user(1). With the mode bit,we are able to distinguish
    between a task that is executed on behalf of the os and one that is executed on
    behalf of the user.When the computer system is executing on behalf of a user
    application,the system is in user mode.However, when a user application request
    a service from the os(via a system call) it must transition from user to kernel
    mode to fulfill the request.
       At system boot time, the hardware starts in kernel mode. The os is then
    loaded and starts user applications in user mode.Whenever a trap or interrupt
    occurs,the hardware switches from user mode to kernel mode(that is ,changes the
    state of the mode bit to 0),Thus,whenever the os gains control of the computer
    it is in kernel mode.The system always switches to user mode(by setting the mode
    bit to 1) before passing control to a user program.
       The dual mode of operation provides us with the means for protecting the os
    from errant users---and errant users from one another. we accomplish this protection
    by designating some of the machine instructions that may cause harm as privileged
    instructions.The hardware allows privileged instructions to be executed only in
    kernel mode.If an attempt is made to execute a privileged instruction in user
    mode,the hardware doesn't execute the instruction but rather treats it as illegal
    and traps it to the os.

    5.System call
        System calls provide the means for a user program to ask the os to perform
    tasks reserved for the os on the user program's behalf.A system call is invoked
    in a variety of ways,depending on the functionality provided by the underlying
    processor.
        When a system call is executed,it is treated by the hardware as a software
    interrupt.The system call service routine is a part of the os.The kernel examines
    the interrupting instruction to determine what system call has occurred; a parameter
    indicates what type of service the user program is requesting.

    6.Timer
        We must ensure that the os maintains control over the CPU.We cannot allow
    a user program to get stuck in an infinite loop or to fail to call system service
    and never return control to the os.To accomplish this goal,we can use a timer.
    A timer can be set to interrupt the computer after a specficial period.A variable
    timer is generally implemented by a fixed-rate clock and a counter.The os sets
    the counter.Every time the clock ticks,the counter is decremented.When the counter
    reaches 0, an interrupt occurs.For instance,a 10-bit counter with a 1-millisecond
    clock allows interrupts at intervals from 1 millisecond to 1024 milliseconds,
    in steps of 1 millisecond.

    7.pc(program counter)
        A single-threaded process has one program counter specifying the next
    instruction to execute.A multithreaded process has multiple program counters,
    each pointing to the next instruction to execute for a given thread.
       A process is the unit of work in a system. Such a system consists of a
    collection of processes,some of which are os processes(those that execute system
    code)and the rest of which are user processes.All these processes can potentially
    execute concurrently--by multiplexing on a single CPU,for example.
       The os is responsible for the following activities in connection with
    process management:
      Scheduling processes and threads on the CPUs
      Suspending and resuming process
      providing mechanisms for process synchronization
      providing mechanisms for process communication

    9.hierarchical storage structure
       the same data may appear in different levels of the storage
    system.For instance, data transfer from cache
    to CPU and registers is usually a hardware function, with no operating-system
    intervention. In contrast, transfer of data from disk to memory is usually
    controlled by the operating system.
         In a hierarchical storage structure, the same data may appear in different
    levels of the storage system. For example, suppose that an integer A that is to
    be incremented by 1 is located in file B, and file B resides on a magnetic disk.
    The increment operation proceeds by first issuing an I/O operation to copy the
    disk block on which A resides to main memory. This operation is followed by
    copying A to the cache and to an internal register. Thus, the copy of A appears
    in several places: on the magnetic disk, in main memory, in the cache, and in an
    internal register (see Figure 1.12). Once the increment takes place in the internal
    register, the value of A differs in the various storage systems. The value of A
    becomes the same only after the new value of A is written from the internal
    register back to the magnetic disk.
         In a computing environment where only one process executes at a time,
    this arrangement poses no difficulties, since an access to integer A will always
    be to the copy at the highest level of the hierarchy. However, in a multitasking
    environment, where the CPU is switched back and forth among various
    processes, extreme care must be taken to ensure that, if several processes wish
    to access A, then each of these processes will obtain the most recently updated
    he situation becomes more complicated in a multiprocessor environment
    , where, in addition to maintaining internal registers, each of the
    CPUs also contains a local cache. In such an environment, a copy of A may

    exist simultaneously in several caches. Since the various CPUs can all execute

    concurrently, we must make sure that an update to the value of A in one cache
    is immediately reflected in all other caches where A resides. This situation is
    called cache coherency, and it is usually a hardware problem (handled below
    the operating-system level).
           In a distributed environment, the situation becomes even more complex.
    In this environment, several copies (or replicas) of the same file can be kept
    on different computers that are distributed in space. Since the various replicas
    may be accessed and updated concurrently, some distributed systems ensure
    that, when a replica is updated in one place, all other replicas are brought up
    to date as soon as possible. There are various ways to achieve this guarantee,
    as we discuss in later.




      

  • 相关阅读:
    论文笔记4
    论文笔记3
    论文笔记2
    论文笔记1
    论文笔记
    AFG与AWG的比较
    Linux下“有线线缆被拔出”问题的解决
    python生成excel格式座位表
    PythonTip--一马当先--bfs
    python pygame--倒计时
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3241388.html
Copyright © 2020-2023  润新知