计算机操作系统基础

(不定期更新)

操作系统概述

操作系统的四个特性

并发:同时存在多个运行的程序,
共享:系统中资源供多个并发进程同时使用。
虚拟:处理器分时共享,虚拟存储器等。
异步:多道导致程序以不可预知的速度向前推进。

操作系统提供的服务

进程管理,文件管理,存储管理,输入输出设备管理

中断和系统调用

中断:计算机在执行程序过程中,由于出现了某些特殊事情,CPU暂停当前程序的执行,转而去处理这一事件。

系统调用:用户在程序中调用操作系统所提供的一些子功能。

用户自编程序运行在用户态,操作系统内核程序运行在内核态。从用户态进入核心态就是通过中断和异常实现的。

进程管理

进程的状态与转换

进程的状态转换
  • 就绪 -> 运行:处于就绪态的进程被调度,获得处理机资源(分派处理机时间片)。
  • 运行 -> 就绪:运行时间片到或有更高优先级的进程就绪。
  • 运行 -> 阻塞:当进程请求某一资源(如外设)的使用和分配或等待某一事件的发生(如I/O操作完成)时。
  • 阻塞 -> 就绪:进程等待的事件到来,中断处理程序把相应的进程状态由阻塞态转为就绪态。

进程和线程的区别

进程:是进程实体的一次运行,是系统进行资源分配和调度的一个独立单位。引入进程是为了使多个程序可以并发执行。

线程:是比进程更小的独立运行的基本单位,可以看做轻量级的进程(具有轻型实体、独立调度分派单位,可并发执行,共享进程资源等属性)引入目的是为了减少程序在并发执行过程中的开销。

对比

  1. 调度方面:线程是独立的调度和分派单位,而进程是资源的拥有单位。由于线程不拥有资源,因此可以显著提高并发度及减小切换开销。
  2. 并发性:进程间可以并发,一个进程内多个线程也可以并发。
  3. 系统开销:创建或撤销进程时,系统要为之创建或回收PCB、系统资源等,切换时也需要保存和恢复CPU环境。二线程的切换至需要保存和恢复少量的寄存器,开销较小。
  4. 通信方面:进程间通信需要IPC,而同一进程的多个线程由于共享地址空间,可直接读取进程数据段(如全局变量)来通信。

进程通信

共享存储

低级方式是基于数据结构的共享,高级方式是基于存储区的共享。需要使用同步互斥工具(如P操作、V操作)对共享空间进行读写控制。

消息传递

直接通信方式:直接把消息挂到接收进程的消息队列
间接通信方式:挂到某个中间实体,接收进程找到实体接收消息,类似电子邮件。

管道通信

利用一种特殊的pipe文件连接两个进程。

进程调度

调度原因:合理处理计算机软硬件资源。

  • 先来先服务FCFS
  • 短作业优先
  • 高响应比优先:响应比 = (等待时间 + 要求服务时间)/ 要求服务时间
  • 时间片轮转调度RR
  • 多级反馈队列调度:时间片轮转调度算法和优先级调度算法的综合和发展。
    设置多个就绪队列并为每个队列设置不同的优先级,第一个队列优先级最高,其余依次递减。优先级越高的队列分配的时间片越短,进程到达之后按FCFS放入第一个队列,如果调度执行后没有完成,那么放到第二个队列尾部等待调度,如果第二次调度仍然没有完成,放入第三队列尾部…。只有当前一个队列为空的时候才会去调度下一个队列的进程。

进程同步

同步原则
  • 空闲让进
  • 忙则等待
  • 有限等待:对要求访问临界资源的进程,需要在有限时间内进入临界区,防止死等。
  • 让权等待:当进程无法进入临界区时,需要释放处理机,防止忙等。
同步解决方案

信号量:利用PV操作实现互斥。

管程:由一组数据及定义在这组数据之上的对这组数据的操作组成的软件模块。

经典的进程同步问题
  • 生产者-消费者问题
  • 哲学家就餐
  • 读者-写者问题

死锁

产生原因:非剥夺资源的竞争和进程的不恰当推进顺序。

死锁产生四个条件:互斥条件,请求和保持条件,不可剥夺条件,环路等待条件。

死锁处理
  • 预防死锁:破坏产生死锁的4个必要条件中的一个或者多个。
  • 避免死锁:防止系统进入不安全状态(可能产生死锁的状态),如银行家算法。
  • 检测死锁:利用死锁定理化简资源分配图以检测死锁存在。
  • 解除死锁:资源剥夺法,撤销进程法,进程回退法。

内存管理

连续分配

单一连续分配

分配到内存固定区域,只适合单任务系统。

固定分区分配

分配到内存不同固定区域,分区可以相等也可以不等。

动态分区分配
  • 首次适应(First Fit):按地址从小到大为序,分配第一个符合条件的分区。
  • 最佳适应(Best Fit):按空间从小到大为序,分配第一个符合条件的分区。
  • 最坏适应(Worst Fit):按地址从大到小为序,分配第一个符合条件的分区。
  • 临近适应:与首次适应相似,从上次查完的位置开始找。

非连续分配

基本分页

要一个页表来记录逻辑地址和实际存储地址之间的映射关系,以实现从页号到物理块号的映射。

页表的作用

分页管理引入了快表机制

分页管理还可以采用两级页表或多级页表的方法。

基本分段

分段是为了满足程序员在编写代码的时候的一些逻辑需求(比如数据共享,数据保护,动态链接等)

基本分段

对比:页是信息的物理单位,是出于系统内存利用率的角度提出的;段是信息的逻辑单位,是出于用户角度提出的。页的大小是固定的,由系统决定;段的大小是不确定的,由用户决定。

段页式

基本分段和基本分页的结合

虚拟内存

在程序装入时,可以将程序的一部分装入内存,而将其余部分留在外存,就可以启动程序执行。在程序执行过程中,当所访问的信息不在内存时,由操作系统将所需要的部分调入内存,然后继续执行程序。

操作系统将内存中暂时不使用的内容换出到外存上,从而腾出空间存放将要调入内存的信息。这样,系统好像为用户提供了一个比实际内存大得多的存储器,称为虚拟存储器。

置换算法
  • 最佳置换算法(OPT):选择以后不用的页面换出。只具有理论意义,用来评价其他置换算法。
  • 先进先出算法(FIFO):每次淘汰最早调入的页面。
  • 最近最久未使用算法(LRU)
  • Clock算法:页面设置一个访问位,并将页面链接为一个环形队列,页面被访问的时候访问位设置为1。如果当前指针所指页面访问为为0,那么置换,否则将其置为0。
  • 改进型Clock算法:在Clock算法的基础上添加一个修改位。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,904评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,581评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,527评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,463评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,546评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,572评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,582评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,330评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,776评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,087评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,257评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,923评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,571评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,192评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,436评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,145评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容