进程同步
临界区问题 critical section 123456do{ 进入区 临界区 退出区 剩余区} 进入区:请求进入临界区的代码 临界区:访问共享资源的代码 退出区:离开临界区的代码 剩余区:不涉及共享资源的代码 临界区问题必须要满足以下三个要求: 互斥(mutualexclusion):同一时刻只能有一个进程在临界区内执行 前进(progress):如果没有进程在临界区内执行,并且有一个或多个进程想进入临界区,那么只能从这些进程中选择一个进入临界区,这种选择不能无限期地推迟 有限等待(bounded waiting):在一个进程请求进入临界区和它被允许进入之间,必须存在一个上限,限制其他进程可以进入临界区的次数 软件解决临界区问题 Peterson算法 123456789101112131415161718do{ flag[i] = true; // 表示进程i想进入临界区 turn = j; // 让另一个进程优先,谁先设置turn谁先...
进程与线程
进程 进程的概念 进程包括: 程序代码,也叫文本段 数据段全局变量 程序计数器,处理机寄存器 栈:局部变量,函数参数,返回地址 堆:动态分配的内存 进程是资源分配的基本单位, 不同的进程虽然可能执行同一段程序代码,但它们拥有各自独立的地址空间和资源。 程序是静态的,进程是动态的。 程序是被动的,而进程是主动的。 一个程序可以对应多个进程。 进程的状态 进程的状态包括: 新建态:进程正在创建 就绪态:进程已分配到必要的资源,等待CPU时间片 运行态:进程正在使用CPU 阻塞态:进程等待某个事件发生(如I/O完成) 终止态:进程执行完毕或被强制终止 进程时间片用完后进入就绪态 进程等待I/O等事件进入阻塞态 缺页会进入阻塞态 进程控制块 PCB 内核中用于操作系统管理进程的数据结构 包含: 进程标识符 PID 进程状态 程序计数器 CPU寄存器 CPU调度信息:进程优先级,调度队列的指针等 内存管理信息 I/O状态信息:I/O设备列表,打开文件列表 记账信息:用户CPU时间,系统CPU时间,内存使用情况等 进程调度 长期调度程序:决定哪些进程进入就绪队列,从磁盘的缓冲区...
满屏飘字
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899import sysimport randomfrom PyQt5.QtWidgets import QApplication, QWidget, QLabel,QVBoxLayoutfrom PyQt5.QtCore import QTimer, Qtfrom PyQt5.QtGui import QColor, QPalette# 20条不同的语句messages = [ "早安,开启美好一天!", "温暖的阳光洒满房间。", "愿你今天心情愉快。", "生活充满希望。", "微笑面对每...
计算机系统概述
计算机系统概述 操作系统基本概念 操作系统作为用户和计算机硬件系统之间的接口 命令接口 联机命令接口又称交互式命令接口 脱机命令接口又称批处理命令接口 程序接口(系统调用)system call 系统调用是操作系统提供给编程人员使用的接口,是操作系统为用户程序使用内核服务使用的接口 操作系统分类 批处理操作系统 batch OS 提高了计算机的利用率,但人机交互差 分时操作系统 time-sharing OS 较好解决**人机交互(interactive)**问题,解决交互式作业,多用户操作系统,快速响应用户 实时操作系统 real-time OS 在规定时间内完成对外部事件的响应和处理 操作系统运行模式 用户态 user mode 1和内核态 kernel mode 0 中断和异常 中断服务程序属于操作系统内核。程序计数器PC和程序状态字PSW,程序断点由硬件保存,中断服务程序保存中断屏蔽字,通用寄存器的值,中断向量表由操作系统初始化 操作系统引导 计算机加电后,CPU自动执行预定地址的指令,这些指令通常存放在只读存储器ROM中,这些指令称为引导程序(Bootstrap p...
死锁
死锁 deadlock 概念 定义 在计算机科学中,死锁(Deadlock)是指两个或多个进程在执行过程中,由于竞争资源而造成的一种互相等待的现象,从而导致这些进程无法继续执行。 死锁与饥饿的区别 发生饥饿的进程可以只有一个,发生死锁的进程有两个或两个以上。 发生饥饿的进程可能处于就绪态,比如SJF调度算法中,优先级低的进程可能一直得不到执行机会而处于就绪态,也可能处于阻塞态,如长期得不到I/O设备。而发生死锁的进程一般都处于阻塞态,等待其他进程释放资源。 死锁的必要条件 互斥条件(mutual exclusion):至少有一个资源必须处于非共享模式,即某个资源一次只能被一个进程占用。 占有且等待条件(hold and wait):持有至少一种资源的进程正在等待获取其他进程持有的其他资源 非抢占式(no preemption):进程已获得的资源在未使用完之前,不能被强制剥夺,只能在进程完成其任务后由进程自己释放。 循环等待条件(circular wait):存在一种进程资源的循环等待关系,即P1等待P2占有的资源,P2等待P3占有的资源,…,Pn等待P1占有的资源。 四者缺...
关系模型
关系模型 Relational Model 关系模型的结构 Relational Model Structure 关系:笛卡尔乘积的有意义的有限子集 属性:关系的列,属性的顺序不重要,属性必须是原子的 元组:关系的行,或者一条记录,元组的顺序不重要 域(domain):属性的取值范围 关系模式:关系的结构描述,一个属性列表及属性所对应的域 关系实例:关系在某一时刻的具体数据,快照 关系模型的约束 Constraints of Relational Model 超键(superkey):能唯一标识元组的属性集合。如学号加姓名 候选键(candidate key):最小超键,不能再去掉任何属性的超键。如学号。候选键不唯一,比如学号可以是候选键,身份证号也可以是候选键 唯一性 最小性 主键(primary key):从候选键中选出的用于唯一标识元组的属性集合。如学号 外键(foreign key):一个关系中的属性,其值引用另一个关系的主键或候选键 完整性约束: 实体完整性:主键属性不能为空 参照完整性:外键值要么为空,要么必须在引用的关系中存在对应的主键值(外键作为主键的那个表...
数据库设计
数据库设计 概念模式设计 E-R模型 实体集 entity sets 具有相同属性attributes的实体构成一个实体集。实体指一个具体的个体,如一个特殊的人,一个公司,一件事。 下图为实体集的E-R图 属性 attributes 简单属性(Simple):不可再分的属性 复合属性(composite):可在分的属性 用缩进表示 根据用户需求来确定属性是简单的还是复杂的。比如姓名这个属性,根据用户需求可看成一整个名字的简单属性,也可以看成姓和名的复合属性。 单值属性(Single-valued):在这个属性上的取值只有一个。比如性别,要么是男,要么是女,不可能同时是男和女。 多值属性(multivalued):比如联系方式,可以填多个电话或邮箱 用{}表示 导出属性(Derived):可以由其他属性推导出来。比如年龄可以根据生日算出。导出属性可以在数据库中存也可以不存,存的话得到属性比较快,但是,不仅占空间,而且需要维护它和其他属性的一致性。所以对于一些简单的逻辑关系,就不保存了。 用()表示 联系集 relationship sets 实体集之间存在的某种语义关...
