操作系统原理学习(二)

来源:互联网 发布:python向ssh输入ctrl c 编辑:程序博客网 时间:2024/05/18 03:04

1.进程(process)和线程(Thread)

    进程是具有一定独立功能的程序,是关于某个数据集合上的一次运行活动。进程是系统进行资源分配和调度的一个独立单位

    线程是进程的一个实体,是cpu调度和分派的基本单位是比进程更小的能独立运行的基本单位。线程基本上自己不拥有系统中资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他线程共享进程所拥有的全部资源。

    一个线程可以创建和撤销另一个线程,同一个进程中的多个线程可以并发执行。

2.程序和进程

    程序:

    1.计算机指令的集合,它以文件的形式存储在磁盘上。

    2.程序是静态的实体,在多道程序系统中,它是不能独立运行的,更不能与其他程序并发执行。

    3. 程序不能申请系统资源,不能被系统调度,也不能作为独立运行的单位。因此,它不占用系统的运行资源。

    进程:

    1.通常指一个正在运行的程序,是一个程序在其自身的地址空间中的一次执行活动。

    2.进程是进程实体(包括:程序段、相关的数据段、进程控制块PCB)的运行过程,是系统进行资源分配和调度的一个独立单位。

    3.进程是资源申请、调度和独立运行的单位,因此,它使用系统中的运行资源。

3.实时系统的基本特性

    在特定时间内完成的任务,实时性与可靠性。

    所谓”实时操作系统“,实际上是指操作系统工作时,其各种资源可以根据需要随时进行动态分配。由于各种资源可以进行动态分配,因此,其处理事务的能力较强,速度较快。

4.中断和轮询的特点

    对于I/O设备的程序轮询的方式,是早期的计算机系统对I/O设备的一种管理方式。它定时对各种设备轮流询问一遍有无处理要求。轮流询问之后,有要求的,则加以处理。在处理I/O设备的要求之后,处理机返回继续工作。尽管轮询需要时间,但轮询的速度要比I/O设备的速度快得多,所以一般不会发生不能及时处理的问题。但是,再快的处理机,能处理的输入/输出设备也是有限度的。而且,程序轮询毕竟占据了CPU相当一部分的处理机,因此,程序轮询是一种效率较低的方式,现在的计算机系统已经很少应用。

    程序中断,通常简称中断,是指在计算机执行期间,系统内发生任何非寻常的或者非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序。待处理完毕后,又返回到原来被中断处继续执行或调度新的进程执行的过程。

    轮询-----效率低,等待时间长,CPU利用率不高。

    中断----容易遗漏一些问题,CPU利用率高。

5.保持进程同步的方法

    进程间同步的主要方法有:原子操作、信号量控制、自旋锁、管程、会合、分布式系统。

6.操作系统的主要组成部分

    操作系统的主要组成部分:进程和线程的管理,存储管理,设备管理,文件管理。

7.分段和分页

    页是信息的物理单位,分页是实现离散分配方式,以消减内存的外零头,提高内存的利用率;或者说,分页仅仅是由于系统管理的需要,而不是用户的需要。

    段是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了能更好的满足用户的需要。

    页的大小固定且由系统确定,把逻辑地址划分为页号和业内地址两部分,是由机器硬件实现的,因而一个系统只能有一种大小的页面。段的长度不固定,决定于用户所编写的程序,通常是由编辑程序在对源程序进行编辑时,根据信息的性质来划分的。

8.什么是虚拟内存?

    虚拟内存是一些系统页文件,存放在磁盘上,每个系统页文件大小为4K,物理内存也被分页,每个页大小也为4K,这样虚拟页文件和物理内存页就可以对应,实际上虚拟内存就是用于物理内存的临时存放的磁盘空间。

    页文件就是内存页,物理内存中每页叫物理页,磁盘上的页文件叫做虚拟页,物理页+虚拟页就是系统所有使用的页文件的总和。

9.什么是死锁?其条件是什么?怎么避免死锁?

    死锁:在两个或者多个并发进程中,如果每个进程持有某种资源而又都等待别的进程释放它或他们现在所保持的资源,在未改变这种状态之前都不恩能向前推进,则这一组进程产生了死锁。通俗的讲,就是两个或多个进程被无限期的阻塞,相互等待的一种状态。

    死锁产生的原因: 1.系统资源不足 ; 2.进程推进顺序非法

    产生死锁的必要条件:1.互斥:一个资源每次只能被一个进程使用;2.不可抢占:进程已获得资源,在未使用完之前,不能强行剥夺;3.占有并等待:一个进程因请求资源而阻塞,对已获得的资源保持不放; 4.唤醒等待:若干进程之间形成一种首尾相接的循环等待资源关系。

    死锁的解除与预防:所以,在系统设计、进程调度等方面注意不让死锁的四个必要条件成立,如何确定资源的合理分配算法,避免进程永久占据系统资源。此外,也要防止进程在处于等待状态的情况下占用资源。因此,对资源的分配要给予合理的规划。

    死锁的处理策略:鸵鸟策略、预防策略、避免策略、检测与恢复策略。

10.进程同步

    进程同步的主要任务:是对多个相关进程在执行次序上进行协调,以使并发执行的各程序之间有效的共享资源和相互合作,从而使程序的执行具有可再现性。

    同步机制遵循的原则:

    1.空闲让进

    2.忙则等待(保证对临界区的互斥访问)

    3.有限等待(有限代表有限的事件,避免死等)

    4.让权等待(当进程不能进入自己的临界区时,应该释放处理机,以免陷入忙等状态。)

11.进程间的通信如何实现?

    进程通信,是指进程之间的信息交换(信息量少则一个状态或数值,多则成千上万个字节)。因此,对于用信号量进行的进程间的互斥和同步,由于其所交换的信息量少而被归结为低级通信。

   所谓高级进程通信是指,用户可以利用操作系统所提供的一组通信命令传送大量数据的一种通信方式。操作系统隐藏了进程通信的实现细节。

    高级通信机制可归结为三大类:

      共享存储器系统(存储器中划分的共享存储区):实际操作中对应的是“剪切板”(剪切板实际上是系统维护管理的一块内存区域)的通信方式。比如:word进程按下ctrl+c,在ppt进程按下crtl+v,即完成了word进程和ppt进程之间的通信,复制时将数据放入到剪贴板,粘贴时从剪贴板中取出数据,然后显示在ppt窗口上。

      消息传递系统(进程中的数据交换以消息为单位,当今最流行的微内核操作系统中,微内核与服务器之间的通信,无一例外的都采用了消息传递机制)。应用举例:邮槽是基于广播通信体系设计出来的,它采用无连接的不可靠的数据传输。邮槽是一种单向通信机制,创建邮槽的服务器进程读取数据,打开邮槽的客户机进程写入程序。

      管道通信系统(管道:即连接读写进程以实现它们之间通信的共享文件(pipe文件,类似于先进先出的队列,由一个进程写,另一个进程读))。实际操作中,管道分为:匿名管道&&命名管道。匿名管道是一个未命名的、单向管道,通过父进程和一个子进程之间传输数据。匿名管道只能实现本地机器上两个进程之间的通信,而不能实现跨网络的通信。命名管道不仅可以在本机上实现两个进程间的通信,还可以跨网络实现两个进程间的通信。


阅读全文
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 七个半月宝宝不爱吃饭怎么办 8个半月宝宝不爱吃饭怎么办 八个半月宝宝不爱吃饭怎么办 特百惠杯子摔坏后不给换怎么办 特百惠水杯摔裂了怎么办 焖烧杯摔瘪了怎么办 苦瓜和虾一起吃中毒怎么办 乐扣盖子坏了怎么办 小孩上课坐不住好动怎么办 5小孩晚上不睡觉怎么办 一年级的孩子上课好动怎么办 一岁宝宝太好动怎么办 3岁宝宝太好动怎么办 孩子学习注意力不集中怎么办 1岁宝宝皮肤黄怎么办 三岁宝宝太皮怎么办 一岁宝宝太皮了怎么办 5岁宝宝学习太皮怎么办 2岁宝宝太皮了怎么办 身上的皮肤很干怎么办 小孩子挑食厌食不吃饭怎么办 1岁宝宝特别淘气怎么办 4岁宝宝有多动症怎么办 3岁宝宝有多动症怎么办 6个月婴儿睡眠少怎么办 7个月婴儿睡眠少怎么办 孩子好动注意力不集中怎么办 学生在课堂上爱讲话怎么办? 幼儿园老师圢小孩脸怎么办 宝宝上幼儿园坐不住怎么办 宝宝在幼儿园总是坐不住怎么办 早教课上宝宝坐不住怎么办? 孩子在幼儿园上课坐不住怎么办 小孩不会写拼音a怎么办 小朋友上课注意力不集中怎么办 一年级孩子上课爱说话怎么办 一年级小孩不听老师话怎么办 大班幼儿规则意识差怎么办 幼儿大班《打雷了怎么办》的教案 小孩上课不听讲到处乱跑怎么办 小孩子经常咬人好动怎么办