操作系统的概念

概念与功能

image-20240423194707226

image-20240423194841887

特征

image-20240423195117102

image-20240423195216394

image-20240423195332150

image-20240423201906314

image-20240423202038794

image-20240423202117687

image-20240423202324881

image-20240423202332741

image-20240423202549561

没有并发和共享,就没有虚拟和异步,所以并发和共享是两个最基本的特征。

发展与分类

image-20240423202902770

image-20240423203035194

image-20240423203120921

image-20240423203212927

image-20240423203302552

image-20240423203337113

操作系统的运行

运行机制

image-20240424161413293

image-20240424161608749

image-20240424161646947

image-20240424161730273

中断和异常

image-20240424161925701

内中断的例子:

image-20240424162131100

image-20240424162100314

外中断的例子:

image-20240424162342891

(每一条指令执行结束时,CPU都会例行检查是否有外中断信号)

image-20240424162648223

image-20240424162732505

image-20240424162750550

系统调用

image-20240424163016612

image-20240424163133166

image-20240424163227764

image-20240424163248719

image-20240424163517853

image-20240424163556825

操作系统体系结构

image-20240424172527821

image-20240424172556390

image-20240424172624554

image-20240424172747625

(“变态”即CPU状态的转换)

image-20240424172849193

image-20240424173308508

image-20240424174249792

操作系统的引导

image-20240424175832327

image-20240424175920257

虚拟机

image-20240424180221509

image-20240424180529570

进程

概念

image-20240425194050907

image-20240425194501549

image-20240425195833490

image-20240425195950949

更确切的说,应该是“进程实体(进程映像)的组成”

image-20240425202052767

进程实体反应了进程在某一时刻的状态

image-20240425202251316

(一个进程被“调度”,就是指操作系统决定让这个进程上CPU运行)

image-20240425202536005

image-20240425202624628

状态与转换

image-20240425203158683

image-20240425203232076

image-20240425203258368

image-20240425203341916

image-20240425203616442

image-20240425203659892

image-20240425203729200

image-20240425203752369

大多数使用链式方式

image-20240425203824211

image-20240425203843154

进程控制

image-20240425204014861

image-20240425204142396

image-20240425204307182

image-20240425204414430

image-20240425204556522

image-20240425204644915

image-20240425205119950

image-20240425204958551

这样,当原来的进程再次投入运行时,可以通过PCB恢复它的运行环境

image-20240425205209183

进程通信

image-20240425205526858

image-20240425205616344

image-20240425205743656

image-20240425205842141

image-20240425205929221

image-20240425210208090

image-20240425210314279

image-20240425210729504

先进先出(FIFO)

image-20240425211023890

image-20240425211103113

线程

概念

image-20240425212924612

image-20240425213012953

image-20240425213022270

实现方式

image-20240425213504551

image-20240425213554685

image-20240425213745128

image-20240425213829589

image-20240425213923083

image-20240425214004512

image-20240425214042850

image-20240425214107952

image-20240425214252434

image-20240425214347873

状态与转换

image-20240425214516442

image-20240425214903060

调度

概念,层次

image-20240426171438969

image-20240426171526532

image-20240426171612978

image-20240426171752119

image-20240426172310673

image-20240426172436227

image-20240426172751011

image-20240426172848352

进程调度的时机,切换与方式

image-20240426183054466

image-20240426212516479

image-20240426212715032

image-20240426215459885

image-20240426215508243

image-20240426215649600

image-20240426215759025

image-20240426215814790

调度器

image-20240426220036114

image-20240426220048941

闲逛进程

image-20240426220117897

调度算法

基本概念

image-20240426220251731

image-20240426220315202

image-20240426220403033

image-20240426220508876

image-20240426220623795

image-20240426220637861

image-20240426220647090

image-20240426220746537

先来先服务

image-20240426221105498

image-20240426221005368

短作业优先

image-20240426221633075

image-20240426221227911

image-20240426221355660

image-20240426221426472

image-20240426221552888

高响应比优先

image-20240426221942370

image-20240426221907145

image-20240426222017800

image-20240426222310955

时间片轮转

image-20240426223150381

image-20240426222701916

image-20240426222740205

image-20240426222754522

image-20240426222840849

image-20240426222922006

image-20240426223043674

image-20240426223049058

优先级调度算法

image-20240426223642340

image-20240426223343429

image-20240426223435568

image-20240426223623059

多级反馈队列调度算法

image-20240426224052076

image-20240426223933261

image-20240426224157458

多级队列调度算法

image-20240426224548604

进程同步、进程互斥

概念

image-20240427153146275

image-20240427153238267

image-20240427153329535

image-20240427153528037

image-20240427153536900

image-20240427153654004

软件实现方法

单标志法

image-20240427153905013

image-20240427153954228

双标志先检查法

image-20240427154050812

image-20240427154158402

双标志后检查法

image-20240427154433993

image-20240427154506099

Peterson算法

image-20240427154806950

image-20240427154919393

总结:

image-20240427154909218

硬件实现方法

image-20240427155132426

中断屏蔽方法

image-20240427155351280

TestAndSet指令

image-20240427155549439

image-20240427155657037

总结:

image-20240427155714643

互斥锁

image-20240427161617855

image-20240427161909400

信号量机制

image-20240427162015247

image-20240427162138098

image-20240427164404808

image-20240427163801843

image-20240427163931364

image-20240427164150523

image-20240427164224249

image-20240427164238901

用信号量实现进程互斥、同步、前驱关系

image-20240427165838505

image-20240427165920640

image-20240427170038714

image-20240427170257233

image-20240427170413130

管程

image-20240427230155371

image-20240427230456604

image-20240427230748836

image-20240427231003737

image-20240427231031143

image-20240427231115335

死锁

概念

image-20240428103345511

image-20240428103541095

image-20240428104031040

image-20240428104232904

image-20240428104329673

image-20240428104355076

image-20240428104409628

处理策略

预防死锁

image-20240428104800043

image-20240428110845067

image-20240428111135087

image-20240428111303598

image-20240428111510565

image-20240428111517724

避免死锁

image-20240428111556177

image-20240428111847322

image-20240428111953258

image-20240428112039907

image-20240428112334211

image-20240428112423236

检测和解除

image-20240428112508031

image-20240428114206668

image-20240428114342738

image-20240428114537944

image-20240428114711590

image-20240428114751638

(优先处理批处理式的,因为对用户使用影响不大)

image-20240428114902430

内存

基础知识

image-20240429153752166

image-20240429153924658

image-20240429155629486

image-20240429161049771

image-20240429161153683

image-20240429161508184

image-20240429161825328

image-20240429162053249

image-20240429162102537

image-20240429162249346

image-20240429162330274

image-20240429162410033

内存管理的概念

image-20240429163400898

image-20240429163436757

image-20240429163535716

image-20240429163803860

image-20240429163827524

覆盖与交换

image-20240429164418713

image-20240429164455670

image-20240429164544862

image-20240429164612141

image-20240429164806355

image-20240429165155247

(PCB用于对换出内存的管理,所以不能移除)

image-20240429165311501

连续分配管理方式

image-20240429170107455

image-20240429170230003

image-20240429170337227

image-20240429170427693

image-20240429170534520

image-20240429170605691

image-20240429170629349

image-20240429171248308

image-20240429171640000

image-20240429172307867

动态分区分配算法

image-20240429183640521

image-20240429184107179

image-20240429184308438

image-20240429184401089

image-20240429184847313

综合而看,四种算法中,首次适应算法的效果反而更好

image-20240429184926780

基本分页存储管理的概念

image-20240429185044850

image-20240429192021793

image-20240429192254015

image-20240429192445398

image-20240429193030243

由于页号是隐含的,因此每个页表项占3B,存储整个页表至少需要3*(n+1)B

image-20240429193529864

image-20240429193852356

image-20240429194001277

image-20240429194313689

image-20240429194524418

image-20240429194533049

image-20240429194608934

image-20240429194709962

基本地址变换机构

image-20240430132639778

image-20240430133036680

image-20240430132854505

image-20240430133322637

image-20240430133721750

进程页表通常是装在连续的内存块中的

image-20240430133924940

具有快表的地址变换机构

image-20240430214406783

image-20240430214543586

image-20240430214820134

image-20240430215034699

image-20240430215057205

image-20240430215201466

image-20240430215219805

两级页表

image-20240430215240895

image-20240430215333566

image-20240430215352627

image-20240430215447088

image-20240430215536826

image-20240430215622471

image-20240430221904881

image-20240430221945125

image-20240430222104397

image-20240430222157336

基本分段存储管理方式

image-20240430222216947

image-20240430222313015

编译程序会将段名转换为段号

image-20240430222448571

image-20240430222607184

image-20240430222632255

image-20240430222837702

image-20240430222939786

image-20240430223029812

image-20240430223111412

image-20240430223204169

image-20240430223230391

段页式管理方式

image-20240430223311760

image-20240430223410358

image-20240430223432847

image-20240430223516924

image-20240430223606180

image-20240430223748610

image-20240430223846996

虚拟内存

基本概念

image-20240502184705338

image-20240502184712905

image-20240502184811774

可以用虚拟存储技术来解决以上问题

image-20240502185030315

image-20240502185138135

image-20240502185227489

请求分页管理方式

image-20240502185306672

image-20240502185559242

image-20240502185728367

image-20240502194240033

image-20240502194301875

image-20240502194349367

image-20240502194456246

image-20240502194504439

image-20240502194613253

页面置换算法

image-20240502194654282

最佳置换算法

image-20240502194907990

image-20240502194923756

先进先出置换算法

image-20240502195010397

image-20240502195104391

最近最久未使用置换算法

image-20240502195219347

时钟置换算法

image-20240502195451628

image-20240502195834848

image-20240502195846554

页面分配策略、抖动、工作集

image-20240502195917853

image-20240502200328455

image-20240502200616114

image-20240502200510409

image-20240502200724251

image-20240502200857234

image-20240502201108775

image-20240502201216358

image-20240502201416165

内存映射文件

image-20240502201435872

image-20240502201452957

image-20240502201604556

image-20240502201730094

image-20240502201805732

image-20240502201827918

文件管理

初识文件管理

image-20240504171030309

image-20240504171100048

image-20240504171158309

image-20240504171509565

image-20240504171545533

image-20240504172200165

image-20240504172305676

文件的逻辑结构

image-20240504172432897

image-20240504172450107

image-20240504172613166

image-20240504172700370

image-20240504173323289

image-20240504173336639

image-20240504173521971

image-20240504173624407

image-20240504173700930

image-20240504173729770

image-20240504173749799

image-20240504173854083

文件目录

image-20240504195911089

image-20240504200009100

image-20240504200404511

image-20240504215231835

image-20240504215306445

image-20240504215331400

image-20240504215952889

image-20240504220119936

image-20240504220155365

image-20240504220241393

image-20240504220544857

image-20240504220615588

image-20240504220655481

文件的物理结构

image-20240504220740852

image-20240504220752447

image-20240504220855137

image-20240504221018691

image-20240504221121523

image-20240504221145678

image-20240504221221006

image-20240504221235714

image-20240504221253950

image-20240504221338623

image-20240504221406153

image-20240504221527276

image-20240504221639911

image-20240504221722289

image-20240504221847769

image-20240504222029236

image-20240504222113093

image-20240504222245426

image-20240504222435451

image-20240504222441484

image-20240504222610746

image-20240504222649601

image-20240504222734502

image-20240504222829167

逻辑结构vs物理结构

image-20240504223801107

用户用逻辑地址访问文件

image-20240504224101208

链接分配:逻辑上相邻的块在物理上用链接指针表示先后关系

索引分配:操作系统为每个文件维护一张索引表,其中记录了逻辑块号->物理块号的映射关系

image-20240504225231869

image-20240504225343412

image-20240504225423299

文件存储空间管理

image-20240504230904031

image-20240504231052685

image-20240504231222045

image-20240504231330897

image-20240504231405631

image-20240504231501014

image-20240504231702988

image-20240504231734142

连续分配和离散分配都适用

image-20240504231829147

image-20240504231940539

image-20240504232055144

image-20240504232136941

image-20240504232227928

文件的基本操作

image-20240504232311717

image-20240504232402356

image-20240504232515051

image-20240504232622767

image-20240504232720671

读写指针记录了该进程对文件的读/写操作进行到的位置

image-20240504232851782

image-20240504232947726

image-20240504233116280

image-20240504233232205

文件共享

image-20240504233249597

image-20240504233306020

image-20240504233405003

image-20240504233441070

image-20240504233519512

image-20240504233615226

用软链接访问比硬链接访问更慢

文件保护

image-20240504233710763

image-20240504233744538

image-20240504233836916

image-20240504233849257

image-20240504233944363

image-20240504234020658

image-20240504234249589

文件系统

层次结构

image-20240505004126460

image-20240505004321745

全局结构(布局)

image-20240505004424894

image-20240505004553268

image-20240505004659347

image-20240505004823504

虚拟文件系统&文件系统挂载(安装)

image-20240505010711222

image-20240505010719404

image-20240505010808536

不同的文件系统,文件数据结构各不相同

image-20240505010952068

vnode只存在于主存中,而inode既会被调入主存,也会在外存中存储

image-20240505011216050

image-20240505011428925

IO设备

IO设备的概念和分类

image-20240505225718206

image-20240505225746149

image-20240505225827445

image-20240505225846591

image-20240505225911811

image-20240505225942693

IO控制器

image-20240505230011862

image-20240505230024418

image-20240505230220253

image-20240505230449678

image-20240505230525811

image-20240505230650922

image-20240505230850587

IO控制方式

image-20240505231017333

程序直接控制方式

image-20240505231202758

image-20240505231400321

image-20240505231500903

中断驱动方式

image-20240505231626441

image-20240505231808551

DMA方式

image-20240505231926063

image-20240505232123731

image-20240505232248661

通道控制方式

image-20240505232345060

image-20240505232427047

总结

image-20240505232459847

image-20240505232537544

IO软件层次结构

image-20240505232703178

image-20240505232753417

image-20240505233318743

image-20240505233149021

image-20240505233457047

image-20240505233617288

设备驱动程序和中断处理程序是直接跟硬件打交道的

输入输出应用程序接口&设备驱动程序接口

image-20240505233805618

image-20240505234639307

image-20240505234410497

image-20240505234728857

image-20240505234818521

image-20240505234903607

IO核心子系统

概述

image-20240515185912720

image-20240515190016114

image-20240515190051769

假脱机技术

image-20240515190141105

image-20240515190246973

image-20240515190306405

image-20240515190348462

image-20240515190414097

image-20240515190512805

image-20240515190629310

image-20240515190740808

image-20240515190807314

image-20240515190833819

设备的分配与回收

image-20240515190904141

image-20240515190947631

image-20240515191148963

image-20240515191324566

image-20240515193830101

image-20240515193931812

image-20240515194021285

image-20240515194050812

image-20240515194117090

image-20240515194219582

image-20240515194338774

image-20240515194431060

image-20240515194458390

image-20240515194614688

缓冲区管理

image-20240515194823232

image-20240515194900675

image-20240515195003159

image-20240515195218929

image-20240515195312946

image-20240515195413937

结论:采用单缓冲策略,处理一块数据平均耗时Max(C,T)+M

image-20240515195613001

image-20240515200142640

结论:采用双缓冲策略,先处理一个数据快的平均时间为Max(T,C+M)

image-20240515202408963

image-20240515202425470

image-20240515202511574

image-20240515202711480

第一个是收容输入,第二个是提取输入,第三个是收容输出,第四个是提取输出。

image-20240515202850685

磁盘

磁盘的结构

image-20240516215343934

image-20240516215441480

image-20240516215519553

image-20240516215636134

image-20240516215658355

image-20240516215710532

image-20240516215735020

磁盘调度算法

image-20240516215845127

image-20240516222616024

image-20240516222649827

通过软件无法改变延迟时间和传输时间,但是操作系统的磁盘调度算法会直接影响寻道时间。

image-20240516222841882

image-20240516223106937

image-20240516223224545

image-20240516223313155

image-20240516223420104

image-20240516223452110

image-20240516223528949

减少磁盘延迟时间的方法

image-20240516223637792

image-20240516223731203

image-20240516223858397

image-20240516224116789

image-20240516224130200

image-20240516224232260

image-20240516224319135

image-20240516224337508

磁盘的管理

image-20240516224403877

image-20240516224616726

image-20240516224714791

image-20240516224847796

image-20240516225039778

(对操作系统透明即为操作系统不可知,不透明即为操作系统可知)

image-20240516225117627

固态硬盘SSD

image-20240516225206249

image-20240516225250497

SSD中黑色的块就是一个个闪存芯片

固态硬盘的读写单位是页,页相当于磁盘中的块/扇区,固态硬盘的块相当于磁盘的磁道

image-20240516225511475

固态硬盘读的速度通常很快,但是写的速度会慢的多(由于写的动作可能会引起擦除的动作以及数据迁移的动作)

image-20240516230425181