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.

some notions about os的更多相关文章

  1. NodeJs之OS

    OS Node.js提供了一些基本的底层操作系统的模块OS. API var os = require('os'); console.log('[arch] 操作系统CPU架构'+os.arch()) ...

  2. Node.js:OS模块

    os模块,可以用来获取操作系统相关的信息和机器物理信息,例如操作系统平台,内核,cpu架构,内存,cpu,网卡等信息. 使用如下所示: const os = require('os'); var de ...

  3. Xamarin+Prism开发详解四:简单Mac OS 虚拟机安装方法与Visual Studio for Mac 初体验

    Mac OS 虚拟机安装方法 最近把自己的电脑升级了一下SSD固态硬盘,总算是有容量安装Mac 虚拟机了!经过心碎的安装探索,尝试了国内外的各种安装方法,最后在youtube上找到了一个好方法. 简单 ...

  4. Mac OS 使用 Vagrant 管理虚拟机(VirtualBox)

    Vagrant(官网.github)是一款构建虚拟开发环境的工具,支持 Window,Linux,Mac OS,Vagrant 中的 Boxes 概念类似于 Docker(实质是不同的),你可以把它看 ...

  5. Mac OS、Ubuntu 安装及使用 Consul

    Consul 概念(摘录): Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发现的方案,比如 Airbnb 的 SmartStac ...

  6. java 利用ManagementFactory获取jvm,os的一些信息--转

    原文地址:http://blog.csdn.net/dream_broken/article/details/49759043 想了解下某个Java项目的运行时jvm的情况,可以使用一些监控工具,比如 ...

  7. 让 ASP.NET vNext 在 Mac OS 中飞呀飞。。。

    写在前面 阅读目录: 娓娓道来 Install ASP.NET vNext Command Line Tools 安装 Homebrew 使用 Homebrew,安装 KVM Install Subl ...

  8. Mac OS X 上编写 ASP.NET vNext (二) IDE配置

    上一篇中介绍了如何在OS X上搭建.Net运行时.不过光有运行时还不够,还需要有一个好用的IDE,有了IDE的支持,OS X上的开发才称为可能. 和上篇类似,这里先列举出具体步骤,个人可以根据自己的情 ...

  9. 在Mac OS X上安装ASP.NET 5(译文)

    ASP.NET 5 运行在包括OS X的可用于多个平台的.NET Execution Environment(DNX)上.本文介绍如何在OS X上通过HomeBrew安装DNX和ASP.NET 5. ...

随机推荐

  1. selenium让人摸不着头脑的问题

    selenium让人摸不着头脑的问题 问题一 使用webdriver驱动firefox浏览器时如果不设置参数,默认使用的Firefox的profile和平时打开浏览器使用的firefox不一样,如果要 ...

  2. 别样JAVA学习(五)继承上(1.0)Object类equals()

    上一节继承下(一)我们进行抽象类.接口以及多态的学习. 接下来大家我们讲点特殊的东西就是object类, 我们一直在说继承,子继承了父,父还有没有父类呢, 为什么这么思考,大家想构造函数的第一行是不是 ...

  3. cocos2d-x 消类游戏,类似Diamond dash 设计

    前几天刚刚在学习cocos2d-x,无聊之下自己做了一个类似Diamond dash的消类游戏,今天放到网上来和大家分享一下.我相信Diamond dash这个游戏大家都玩过,游戏的规则是这样的,有一 ...

  4. 安装了VS2010 sp1 后再安装ASP.NET MVC 3.0的问题(Final Result: Installation failed with error code: (0x80070643), "安装时发生严重错误 " (Ela)

    原文:安装了VS2010 sp1 后再安装ASP.NET MVC 3.0的问题(Final Result: Installation failed with error code: (0x800706 ...

  5. poj2763(树链剖分)

    题目链接:http://poj.org/problem?id=2763 题意:定一棵带边权的树,要求支持两种操作:1)询问树中某两点间的距离. 2)修改某条边的权值. 分析:树链剖分,边权修改,路径求 ...

  6. shiro权限架作战

    shiro框架作为一种特权的开源框架,通过身份验证和授权从具体的业务逻辑分离极大地提高了我们的发展速度,它的易用性使得它越来越受到人们的青睐.上一页ACL架相比,shiro能更easy的实现权限控制, ...

  7. 静默安装MSSQL

    原文地址:http://www.cnblogs.com/lyhabc/p/3511788.html 介绍 假如你有50台服务器需要安装SQLSERVER,如果你用下一步下一步的方式,用远程桌面不停切换 ...

  8. c++进阶

    对网络编程/多线程/系统编程有一定了解:4:对ngnix,redis,memcache有一定了解:5:有高并发服务开发经验优先: 因为C/C++在嵌入式.移动互联网.物联网有很大的优势,有很多人就靠一 ...

  9. MYSQL经常使用命令列表

    MYSQL经常使用命令列表 1.系统管理 mysql -h主机地址 -uusername -p 连接MYSQL(在mysql/bin) exit 退出MYSQL命令 mysqladmin -uuser ...

  10. 特里-HDOJ-1671

    Phone List Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...