操作系统简介

操作系统有两个基本功能:防止硬件被失控的应用程序滥用;为应用程序低级设备方面提供简单的抽象。比如进程是对处理器、主存和I/O设备的抽象表示,文件是对I/O设备的抽象表示,虚拟存储器是对主存和磁盘I/O设备的抽象表示。

一、进程

进程是操作系统对运行程序的一种抽象,在一个系统上可以同时运行多个进程,每个进程都好像独占使用硬件。我们称为并发运行,实际上是一个进程指令和另一个进程指令是交替执行的。操作系统实现这种交替执行的机制称为上下文切换。

操作系统保存进程运行所需的所有状态信息。这种状态,也就是上下文,包括许多信息,比如PC和寄存器文件的当前值,以及主存的内容。在任何时刻,系统上都只有一个进程正在运行。当操作系统决定从当前进程转移控制权到某个新进程,它就会进行上下文切换,即保存当前进程的上下文,恢复新进程的上下文,然后将控制权转移到新进程。

实现进程这个抽象概念需要低级硬件和操作系统软件的紧密合作。

二、线程

尽管通常我们认为一个进程只有一个的控制流,但在现代系统中,一个进程实际可以由多个称为线程的执行单元组成,每个线程都运行在进程上下文中,并共享同样的代码和全局数据。

由于网络服务器对并行处理要求,线程称为越来越重要的编程模型,因为多线程之间比多进程之间更容易共享数据,也因为线程一般都比进程更高效。

三、虚拟存储器

虚拟储存器是一个抽象概念,为每个进程提供了一个假象,每个进程都独占使用主存。每个进程都看到的存储器都是一致的,称为虚拟地址空间。在Linux中,最上面的四分之一的地址空间是预留给操作系统中的代码和数据的,这对所有进程都一样。底部的四分之三的地址空间是用来存放用户进程定义的代码和数据。


进程的虚拟地址空间.jpg
  • 程序代码和数据。代码是从同一固定地址开始,紧接着是和C全局变量相对应的数据区。代码和数据区是由可执行目标文件直接初始化的
  • 。代码和数据区紧接着是运行时堆。代码和数据区是在进程一旦开始时就被指定了大小。如果调用malloc和free这样的C标准库函数,堆可在运行时动态地扩展和收缩。
  • 共享库。在地址空间的中间附近是一块用来存放像C标准库和数学库这样的共享库的代码和数据区域
  • 。位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数调用。和堆一样,用户栈在程序执行期间可以动态地扩展和收缩。每次调用一个函数,栈会增长,。每次从函数返回,栈会收缩。
  • 内核虚拟存储器。内核是操作系统总是在驻留在存储器中的部分,地址空间1/4部位是为内核预留。应用程序不允许读写这个区域的内容或直接调用内核代码定义的函数
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容

  • 1.1 课程概述 基本概念及原理 操作系统介绍 中断及系统调用 内存管理 进程及线程 调度 同步 文件系统 I/O...
    liuzhangjie阅读 1,143评论 0 0
  • 1. 基础知识 1.1、 基本概念、 功能 冯诺伊曼体系结构1、计算机处理的数据和指令一律用二进制数表示2、顺序执...
    yunpiao阅读 5,217评论 1 22
  • 分成两个部分第一部分:基本概念、处理器管理、存储管理第二部分:设备管理、文件管理、并发程序设计 操作系统原理 基本...
    KeHaoo阅读 723评论 0 1
  • 第一章 操作系统引论 操作系统的定义 操作系统是一组能有效地组织和管理计算机硬件和软件资源,合理地对各类作业进行调...
    Waldo_cuit阅读 2,574评论 0 2
  • 第一章计算机系统漫游 本章通过跟踪hello程序的生命周期来开始对系统的学习--从它被程序员创建开始,到在系统上运...
    逍遥白亦阅读 171评论 0 2