第一篇:学习操作系统心得体会
学习操作系统心得体会
计算机操作系统是铺设在计算机硬件上的多层系统软件,不仅增强了系统的功能,而且还隐藏了对硬件操作的细节,由它实现了对计
算机硬件操作的抽象。
操作系统是管理计算机系统的全部硬件资源包括软件资源及数据资源;控制程序运行;改善人机界面;为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面。
操作系统的一些原理在生活中的应用主要有以下几个,结合生活中的例子,可以化抽象为具体,我们会更加清楚地了解到其原理与操作过程:
1、银行家算法——避免死锁
死锁的产生是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。我觉得操作系统所讲的死锁就好像两个人竟过独木桥,两辆车竟过单行桥等阻塞现象,原因是共享资源,即道路。
为提高系统资源的利用率,避免死锁并不严格限制死锁必要条件的存在,而是在资源的动态分配过程中,使用某种方法去防止系统进入不安全状态,从而避免死锁的最终出现。然而,最有代表性的避免死锁的算法,是Dijkstra的银行家算法。在该方法中把系统的状态分为安全状态和不安全状态,只要能使系统始终都处于安全状态,便可以避免发生死锁。银行家算法的基本思想是分配资源之前,判断系统是否是安全的;若是安全的,才分配。
我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。为保证资金的安全,银行家规定:
(1)当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客;
(2)顾客可以分期贷款,但贷款的总数不能超过最大需求量;
(3)当银行家现有的资金不能满足顾客尚需的贷款数额时,对顾客的贷款可推迟支付,但总能使顾客在有限的时间里得到贷款;(4)当顾客得到所需的全部资金后,一定能在有限的时间里归还所有的资金。
另外,我们也可以把操作系统看作是建造房子,操作系统的资源看作是造房子的起吊机台数,进程向操作系统请求分配资源相当于建造房子时申请的起吊机台数。为保证工程的顺利进行,其操作过程如下:
当一栋房子对起吊机的最大需求量不超过建造房子现有的起吊机时可接纳该房子的建造;
所要建造的房子可以分开几次申请起吊机,但申请的起吊机的总数不能超过最大需求量;
当现有的起吊机台数不能满足某栋房子尚需的起吊机时,对该栋房子所需的起吊机数可推迟给予,但总能是房子在有限的时间里得到贷款;
当建造的房子得到所需的全部起吊机后,一定能在有限的时间里归还所有的起吊机数。
2、进程同步问题:进程管理模块包括进程概念、进程调度、进程互斥、进程同步、进程通信、进程死锁各知识单元。进程概念包含进程特征、进程状态与转换、进程控制各知识点;进程调度包含调度时机、调度算法、调度过程各知识点;进程互斥包含与时间有关的错误、临界资源与临界区、临界区使用原则、临界区互斥访问的解决途径、临界区互斥访问的解决途径各知识点;进程同步包含信号量同步机制、生产者与消费者问题、读者与写者问题、哲学家进餐问题各知识点;进程通信包含忙等待策略、睡眠和唤醒策略、消息传递策略各知识点;进程死锁包含产生原因、必要条件、解决途径各知识点。
一个进程到达了确定的点后,除非另一些进程已经完成了某些操作,否则不得不停下来等待另一进程为它提供的消息,早未获得消息前,该进程处于等待状态,获得消息后被唤醒处于就绪状态,这就是进程同步。我们在生活中也可以找到相应的例子:例如汽车司机和售票员,汽车司机负责开车、进站、开车门、关车门与进站;售票员负责售票、进出站后观察车门,给司机发开关门信息;正常状态下,各自活动,司机开车,售票员售票;在进出站时双方要进行进程同步。3.生产—消费者问题
在实际的操作系统操作过程中,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。
单单抽象出生产者和消费者,还够不上是生产者—消费者问题。该问题还需要有一个缓冲区处于生产者和消费者之间,作为一个中介。生产者把数据放入缓冲区,而消费者从缓冲区取出数据。
为了理解这一问题,我们举一个寄信的例子。假设你要寄一封平信,大致过程如下:
1、你把信写好——相当于生产者制造数据
2、你把信放入邮筒——相当于生产者把数据放入缓冲区
3、邮递员把信从邮筒取出——相当于消费者把数据取出缓冲区
4、邮递员把信拿去邮局做相应的处理——相当于消费者处理数据
操作系统知识点看似繁杂,但究其原理,在对不同系统资源功能进行管理时,所采取的策略和方法有很多是相同的。从操作系统四种重要实现技术出发的横向技术线包括中断技术、共享技术、虚拟技术和缓冲技术。
(1)中断技术模块是实现程序并发执行与设备并行操作的基础,它包括中断类型、中断优先级、中断事件各知识单元。中断类型知识单元包括外中断、内中断知识点;中断优先级知识点在不同的系统中有不同的规定;中断事件知识单元包括进程创建与撤消、进程阻塞与唤醒、分时时间片、缺页中断与缺段中断、I/O操作、文件操作各知识点。
(2)共享技术模块是提高资源利用率的必然途径,它包括处理机共享、存储共享、设备共享、文件共享各知识单元。处理机共享包含进程的并发执行;存储共享包含外存储器共享、内存储器共享知识点;设备共享包含SPOOLing系统;文件共享包含便于共享的文件目录。
(3)虚拟技术模块是把一个物理实体变为若干面向用户的逻辑单元,使资源的用户使用与系统管理相分离,从而提高资源利用率和安全性方,它包括虚拟处理机、虚拟存储器、虚拟存储器方法、虚拟设备、虚拟文件各知识单元。虚拟处理机包含多进程管理;虚拟存储器包含地址转换、中断处理过程、置换知识点;虚拟存储器方法包含页式管理、段式管理、段页式管理各知识点;虚拟设备包含设备共享;虚拟文件包含文件共享。
(4)缓冲技术模块是异步技术的实现前提,可大大提高相关资源的并行操作程度,它包括存储管理缓冲技术、设备管理缓冲技术、文件管理缓冲技术各知识单元。存储管理缓冲技术包含快表;设备管理缓冲技术包含硬缓冲、软缓冲、SPOOLing系统中的输入/输出井知识点;文件管理缓冲技术包含记录成组技术、文件表的打开。
操作系统这门课程并不是教你如何使用操作系统的,而是讲操作系统内部机制的。操作系统的目标是为用户提供一个良好的界面,方便用户使用计算机,同时对内部各种软硬件资源能够进行有效地管理和分配,使整个系统能高效率得运行。操作系统的服务是越来越到位了。操作系统主要有五大功能:处理机管理、存储器管理、设备管理、文件管理、用户接口。我们现在使用的大多是PC机,都是只有一块CPU,而有时却要在计算机上运行多个程序,那么每道程序在什么时候使用CPU,这需要合理得分配协调才行,操作系统关于处理机的分配有相应的调度算法,这些工作都有操作系统帮你代劳。内存储器是存放程序与数据的,如何存放才能井井有条,互不干扰,而且能充分合理的利用有限空间,这都需要操心,这一切也是操作系统的事。当你要使用设备的时候,例如要使用打印机,只要单击打印机按钮即可将内容传到打印机进行后台打印,这一切也都是因为有了操作系统,才可以这么轻松的调用外部设备,还不影响当前处理的工作,所以对设备的管理也是非常重要的。文件的操作对于每个用户来说是家常便饭,每次存取文件只需知道地点和文件名即可,你可曾想过你要存取的文件是放在那个道那个扇区上么?有时你不想让自己的文件被外人看到,还可设置权限。这些幕后的工作都由操作系统完成,你只需要使用文件名对文件进行操作就可以了。操作系统还为用户使用提供了两种方式的接口:命令接口和系统调用接口。命令接口可使用户交互的使用计算机,敲入一条命令,系统响应返回结果,用户根据结果再敲入下一条命令,如此反复。Windows中开始菜单下里的运行,也可执行命令。系统调用是为编程人员提供的,每个系统调用都是一个能完成特定功能的子程序,这样编程人员就可站在操作系统的肩膀上编制程序,没必要所有的功能都从头编起,操作系统提供的功能只需申请调用即可。
每当我们打开计算机,启动成功后,首先映入眼帘的就是操作系统的界面。我们所做的一切的工作都是在操作系统之上来完成的。可是谁也不会去想:为什么鼠标的拖拖曳曳就能完成对文件、磁盘、各种软硬件资源的管理;谁也没意识到是因为有了操作系统的支撑,我么才那么方便的使用计算机。直到有一天,开机后发觉整个屏幕黑糊糊得一片,看不到蓝天白云急得象热锅上的蚂蚁时,才知道操作系统是多么得重要,明白了所有的程序的运行原来是离不开操作系统的。这就是“拥有了不知道珍惜,失去后才知道宝贵”的操作系统版的解释。如果有一天离开了操作系统,我们的计算机也就成了一堆废铁,什么事也干不了。
第二篇:学习操作系统心得体会
学习操作系统心得体会
摘要:操作系统是控制其他程序运行,管理系统资源并为用户提供操作界面的系统软件的集合。操作系统身负诸如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。
转眼间,学习了一个学期的计算机操作系统课程即将结束。在这个学期中,通过老师的悉心教导,让我深切地体会到了计算机操作系统的一些原理和具体操作过程。
在学习操作系统之前,我只是很肤浅地认为操作系统只是单纯地讲一些关于计算机方面的操作应用,并不了解其中的具体操作过程和实用性。通过这一学期的学习,我才知道操作系统(Operating System,简称OS)是管理计算机系统的全部硬件资源包括软件资源及数据资源;控制程序运行;改善人机界面;为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面。
经过一个学期的学习,我也知道了计算机操作系统是铺设在计算机硬件上的多层系统软件,不仅增强了系统的功能,而且还隐藏了对硬件操作的细节,由它实现了对计算机硬件操作的多层次的抽象。操作系统的一些原理在生活中也有所应用,以下是我通过这一学期的学习,把操作系统的一些原理联系生活所得的心得体会:
1.生产—消费者问题
在实际的操作系统操作过程中,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。
单单抽象出生产者和消费者,还够不上是生产者—消费者问题。该问题还需要有一个缓冲区处于生产者和消费者之间,作为一个中介。生产者把数据放入缓冲区,而消费者从缓冲区取出数据。
为了理解这一问题,我们举一个寄信的例子。假设你要寄一封平信,大致过程如下:
1、你把信写好——相当于生产者制造数据
2、你把信放入邮筒——相当于生产者把数据放入缓冲区
3、邮递员把信从邮筒取出——相当于消费者把数据取出缓冲区
4、邮递员把信拿去邮局做相应的处理——相当于消费者处理数据
2、银行家算法——避免死锁
死锁的产生是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。我觉得操作系统所讲的死锁就好像两个人竟过独木桥,两辆车竟过单行桥等阻塞现象,原因是共享资源,即道路。
为提高系统资源的利用率,避免死锁并不严格限制死锁必要条件的存在,而是在资源的动态分配过程中,使用某种方法去防止系统进入不安全状态,从而避免死锁的最终出现。然而,最有代表性的避免死锁的算法,是Dijkstra的银行家算法。在该方法中把系统的状态分为安全状态和不安全状态,只要能使系统始终都处于安全状态,便可以避免发生死锁。银行家算法的基本思想是分配资源之前,判断系统是否是安全的;若是安全的,才分配。我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。为保证资金的安全,银行家规定:
(1)当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客;
(2)顾客可以分期贷款,但贷款的总数不能超过最大需求量;
(3)当银行家现有的资金不能满足顾客尚需的贷款数额时,对顾客的贷款可推迟支付,但总能使顾客在有限的时间里得到贷款;
(4)当顾客得到所需的全部资金后,一定能在有限的时间里归还所有的资金。
另外,我们也可以把操作系统看作是建造房子,操作系统的资源看作是造房子的起吊机台数,进程向操作系统请求分配资源相当于建造房子时申请的起吊机台数。为保证工程的顺利进行,其操作过程如下:
当一栋房子对起吊机的最大需求量不超过建造房子现有的起吊机时可接纳该房子的建造;
所要建造的房子可以分开几次申请起吊机,但申请的起吊机的总数不能超过最大需求量;
当现有的起吊机台数不能满足某栋房子尚需的起吊机时,对该栋房子所需的起吊机数可推迟给予,但总能是房子在有限的时间里得到贷款; 当建造的房子得到所需的全部起吊机后,一定能在有限的时间里归还所有的起吊机数。 进程同步问题
一个进程到达了确定的点后,除非另一些进程已经完成了某些操作,否则不得不停下来等待另一进程为它提供的消息,早未获得消息前,该进程处于等待状态,获得消息后被唤醒处于就绪状态,这就是进程同步。我们在生活中也可以找到相应的例子:
例如汽车司机和售票员,汽车司机负责开车、进站、开车门、关车门与进站; 售票员负责售票、进出站后观察车门,给司机发开关门信息;正常状态下,各自活动,司机开车,售票员售票;在进出站时双方要进行进程同步。
小结:
总而言之,操作系统的一些原理在生活中都可以找到相应的例子。结合生活中的例子,可以化抽象为具体,我们会更加清楚地了解到其原理与操作过程。我觉得通过我们的不断学习,结合生活中的实际问题,我们就会把操作系统学得更好。
第三篇:学习操作系统心得体会
学院:软件学院 班级:1042 组号:7组 成员:
张晗
武川渊
张天峰
进程的创建与撤销
#include
#define NULL 0 //空定义为0 typedef struct PCB //定义进程结构体
{
char name[100];int id;//进程的序号
int priority;//进程的优先级
int time;struct PCB *next;//进程指向下一个节点
}PCB,*PCBList;PCB pcb[PCBSIZE];//创建pcb块,初始空间大小为10 PCBList nullPcb;//空闲队列 PCBList readyPcb;//就绪队列
PCBList readyPcbtail;//就绪队列队尾指针 void InitPcb(PCBList &nullPcb);//--初始化空闲队列 PCBList Create(PCBList &nullPcb);//--//创建一个pcb进程从PCB空间申请一个空PCB,填入进程参数,创建一个
pcb进程。
void InsertReadyPcb(PCBList &readyPcb,PCBList &pcb);int Delete(int id,PCBList &readyPcb,PCBList &nullPcb);//--用于销毁一个pcb进程,指定销毁队列的序列号,销毁该进程,并将它插入到空闲队列中 void PrintPCB(PCBList &readyPcb);//--就绪队列输出函数-输出就绪队列中的进程信息,以便观察创建或撤消活动的结果 void main()
{ int on=0;PCBList p;int deleteId;InitPcb(nullPcb);//给就绪队列分配空间
readyPcbtail=(PCB*)malloc(sizeof(PCB));readyPcb=readyPcbtail;readyPcbtail->id=0;readyPcbtail->priority=0;readyPcbtail->time=0;readyPcbtail->next=NULL;
do
{/*创建程序控制界面*/ cout<<“******************************”<
switch(on)
{ case 1: p=Create(nullPcb);InsertReadyPcb(readyPcb,p);break;//执
行创建PCB进程
case 2: cout<<“请输入销毁的进程的id值”<
Pcb);break;case 3: PrintPCB(readyPcb);break;
case 4: exit(0);
default:
cout<<“请输入1-4之间的序号”;
}
}while(on!=4);
} void InitPcb(PCBList &nullPcb)//初始化空闲队列
{
nullPcb=&pcb[0];for(int i=0;i
pcb[i].id=i;
pcb[i].next=&pcb[i+1];
} pcb[PCBSIZE-1].next=NULL;
cout<<“进程块初始化成功”< } PCBList Create(PCBList &nullPcb)//用于创建一个pcb进 程 { PCBList pcbP;if(nullPcb){//将空闲队列的第一个赋值给就绪队列,并 将它放置在就绪队列的队尾 pcbP=nullPcb;nullPcb=nullPcb->next;printf(“请输入创建pcb的序号idn”);scanf(“%d”,&pcbP->id);printf(“请输入创建它的名字n”);scanf(“%s”,&pcbP->name);printf(“请输入它的优先级n”);scanf(“%d”,&pcbP->priority);printf(“请输入它运行所需时间n”);scanf(“%d”,&pcbP->time); pcbP->next=NULL; } return pcbP; } int Delete(int id,PCBList &readyPcb,PCBList &nullPcb)//用于销毁一个pcb进程 { PCBList pcbT,pcbF; if(pcbT){ while(pcbT){ if(pcbT->id==id){ pcbF->next=pcbT->next; pcbT->next=nullPcb; nullPcb=pcbT; printf(“销毁成功n”); return OK; } pcbT=pcbT->next; pcbF=pcbF->next; } if(!pcbT){ printf(“没有要删除的pcb进程n”); } } else{ printf(“没有要删除的pcb进程n”); } return OK; } void PrintPCB(PCBList &readyPcb)//打印pcb就绪序列 { PCBList pcbP;printf(“就绪队列中的进程,按照优先级排序的序列 为:n”);printf(“tt序号t名字t优先级t运行时间n”); pcbP=readyPcb->next; while(pcbP) { printf(“tt%dt%st%dt%dn”,pcbP->id,pcbP->name,pcbP->priority,pcbP->time);pcbP=pcbP->next; } } void InsertReadyPcb(PCBList &readyPcb,PCBList &pcb) { PCBList pcbF=readyPcb;PCBList pcbT=readyPcb->next; if(pcbT) { while(pcbT) { if(pcbT->priority priority) { pcb->next=pcbT; pcbF->next=pcb; printf(“创建成功并将进程插入到了就绪队列 中了n”); return; } pcbT=pcbT->next; pcbF=pcbF->next; } if(!pcbT) { pcbF->next=pcb; } } else{ pcbF->next=pcb; printf(“创建成功并将进程插入到了就绪队列中了 n”);} } 学习操作系统心得体会 摘要:操作系统是控制其他程序运行,管理系统资源并为用户提供操作界面的系统软件的集合。操作系统身负诸如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。 转眼间,学习了一个学期的计算机操作系统课程即将结束。在这个学期中,通过老师的悉心教导,让我深切地体会到了计算机操作系统的一些原理和具体操作过程。 在学习操作系统之前,我只是很肤浅地认为操作系统只是单纯地讲一些关于计算机方面的操作应用,并不了解其中的具体操作过程和实用性。通过这一学期的学习,我才知道操作系统(Operating System,简称OS)是管理计算机系统的全部硬件资源包括软件资源及数据资源;控制程序运行;改善人机界面;为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面。 经过一个学期的学习,我也知道了计算机操作系统是铺设在计算机硬件上的多层系统软件,不仅增强了系统的功能,而且还隐藏了对硬件操作的细节,由它实现了对计算机硬件操作的多层次的抽象。操作系统的一些原理在生活中也有所应用,以下是我通过这一学期的学习,把操作系统的一些原理联系生活所得的心得体会: 1.生产—消费者问题 在实际的操作系统操作过程中,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。 单单抽象出生产者和消费者,还够不上是生产者—消费者问题。该问题还需要有一个缓冲区处于生产者和消费者之间,作为一个中介。生产者把数据放入缓冲区,而消费者从缓冲区取出数据。 为了理解这一问题,我们举一个寄信的例子。假设你要寄一封平信,大致过程如下: 1、你把信写好——相当于生产者制造数据 2、你把信放入邮筒——相当于生产者把数据放入缓冲区 3、邮递员把信从邮筒取出——相当于消费者把数据取出缓冲区 4、邮递员把信拿去邮局做相应的处理——相当于消费者处理数据 2、银行家算法——避免死锁 死锁的产生是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。我觉得操作系统所讲的死锁就好像两个人竟过独木桥,两辆车竟过单行桥等阻塞现象,原因是共享资源,即道路。 为提高系统资源的利用率,避免死锁并不严格限制死锁必要条件的存在,而是在资源的动态分配过程中,使用某种方法去防止系统进入不安全状态,从而避免死锁的最终出现。然而,最有代表性的避免死锁的算法,是Dijkstra的银行家算法。在该方法中把系统的状态分为安全状态和不安全状态,只要能使系统始终都处于安全状态,便可以避免发生死锁。银行家算法的基本思想是分配资源之前,判断系统是否是安全的;若是安全的,才分配。我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。为保证资金的安全,银行家规定: (1)当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客; (2)顾客可以分期贷款,但贷款的总数不能超过最大需求量; (3)当银行家现有的资金不能满足顾客尚需的贷款数额时,对顾客的贷款可推迟支付,但总能使顾客在有限的时间里得到贷款; (4)当顾客得到所需的全部资金后,一定能在有限的时间里归还所有的资金。 另外,我们也可以把操作系统看作是建造房子,操作系统的资源看作是造房子的起吊机台数,进程向操作系统请求分配资源相当于建造房子时申请的起吊机台数。为保证工程的顺利进行,其操作过程如下: 当一栋房子对起吊机的最大需求量不超过建造房子现有的起吊机时可接纳该房子的建造; 所要建造的房子可以分开几次申请起吊机,但申请的起吊机的总数不能超过最大需求量; 当现有的起吊机台数不能满足某栋房子尚需的起吊机时,对该栋房子所需的起吊机数可推迟给予,但总能是房子在有限的时间里得到贷款; 当建造的房子得到所需的全部起吊机后,一定能在有限的时间里归还所有的起吊机数。 进程同步问题 一个进程到达了确定的点后,除非另一些进程已经完成了某些操作,否则不得不停下来等待另一进程为它提供的消息,早未获得消息前,该进程处于等待状态,获得消息后被唤醒处于就绪状态,这就是进程同步。我们在生活中也可以找到相应的例子: 例如汽车司机和售票员,汽车司机负责开车、进站、开车门、关车门与进站; 售票员负责售票、进出站后观察车门,给司机发开关门信息;正常状态下,各自活动,司机开车,售票员售票;在进出站时双方要进行进程同步。 小结: 总而言之,操作系统的一些原理在生活中都可以找到相应的例子。结合生活中的例子,可以化抽象为具体,我们会更加清楚地了解到其原理与操作过程。我觉得通过我们的不断学习,结合生活中的实际问题,我们就会把操作系统学得更好。 转眼间,学习了一个学期的计算机操作系统课程即将结束。在这个学期中,通过老师的悉心教导,让我深切地体会到了计算机操作系统的一些原理和具体操作过程。在学习操作系统之前,我只是很肤浅地认为操作系统只是单纯地讲一些关于计算机方面的操作应用,并不了解其中的具体操作过程和实用性。通过这一学期的学习,我才知道操作系统(Operating System,简称OS)是管理计算机系统的全部硬件资源包括软件资源及数据资源;控制程序运行;改善人机界面;为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面。 经过一个学期的学习,我也知道了计算机操作系统是铺设在计算机硬件上的多层系统软件,不仅增强了系统的功能,而且还隐藏了对硬件操作的细节,由它实现了对计算机硬件操作的多层次的抽象。操作系统的一些原理在生活中也有所应用,以下是我通过这一学期的学习,把操作系统的一些原理联系生活所得的心得体会: 操作系统是管理计算机系统的全部硬件资源包括软件资源及数据资源;控制程序运行;改善人机界面;为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面。计算机操作系统是铺设在计算机硬件上的多层系统软件,不仅增强了系统的功能,而且还隐藏了对硬件操作的细节,由它实现了对计算机硬件操作的抽象。操作系统的一些原理在生活中的应用主要有以下几个,结合生活中的例子,可以化抽象为具体,我们会更加清楚地了解到其原理与操作过程: 1.生产—消费者问题 在实际的操作系统操作过程中,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。 单单抽象出生产者和消费者,还够不上是生产者—消费者问题。该问题还需要有一个缓冲区处于生产者和消费者之间,作为一个中介。生产者把数据放入缓冲区,而消费者从缓冲区取出数据。 为了理解这一问题,我们举一个寄信的例子。假设你要寄一封平信,大致过程如下: 1、你把信写好——相当于生产者制造数据 2、你把信放入邮筒——相当于生产者把数据放入缓冲区 3、邮递员把信从邮筒取出——相当于消费者把数据取出缓冲区 4、邮递员把信拿去邮局做相应的处理——相当于消费者处理数据 2、银行家算法——避免死锁 死锁的产生是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。由于资源占用是互斥的,当某个进程提出申请资源后,使得有关进程在无外力协助下,永远分配不到必需的资源而无法继续运行,这就产生了一种特殊现象死锁。我觉得操作系统所讲的死锁就好像两个人竟过独木桥,两辆车竟过单行桥等阻塞现象,原因是共享资源,即道路。 为提高系统资源的利用率,避免死锁并不严格限制死锁必要条件的存在,而是在资源的动态分配过程中,使用某种方法去防止系统进入不安全状态,从而避免死锁的最终出现。然而,最有代表性的避免死锁的算法,是Dijkstra的银行家算法。在该方法中把系统的状态分为安全状态和不安全状态,只要能使系统始终都处于安全状态,便可以避免发生死锁。银行家算法的基本思想是分配资源之前,判断系统是否是安全的;若是安全的,才分配。 我们可以把操作系统看作是银行家,操作系统管理的资源相当于银行家管理的资金,进程向操作系统请求分配资源相当于用户向银行家贷款。为保证资金的安全,银行家规定: (1)当一个顾客对资金的最大需求量不超过银行家现有的资金时就可接纳该顾客; (2)顾客可以分期贷款,但贷款的总数不能超过最大需求量; (3)当银行家现有的资金不能满足顾客尚需的贷款数额时,对顾客的贷款可推迟支付,但总能使顾客在有限的时间里得到贷款; (4)当顾客得到所需的全部资金后,一定能在有限的时间里归还所有的资金。 另外,我们也可以把操作系统看作是建造房子,操作系统的资源看作是造房子的起吊机台数,进程向操作系统请求分配资源相当于建造房子时申请的起吊机台数。为保证工程的顺利进行,其操作过程如下: 当一栋房子对起吊机的最大需求量不超过建造房子现有的起吊机时可接纳该房子的建造; 所要建造的房子可以分开几次申请起吊机,但申请的起吊机的总数不能超过最大需求量; 当现有的起吊机台数不能满足某栋房子尚需的起吊机时,对该栋房子所需的起吊机数可推迟给予,但总能是房子在有限的时间里得到贷款; 当建造的房子得到所需的全部起吊机后,一定能在有限的时间里归还所有的起吊机数。 3.进程同步问题 一个进程到达了确定的点后,除非另一些进程已经完成了某些操作,否则不得不停下来等待另一进程为它提供的消息,早未获得消息前,该进程处于等待状态,获得消息后被唤醒处于就绪状态,这就是进程同步。我们在生活中也可以找到相应的例子: 例如汽车司机和售票员,汽车司机负责开车、进站、开车门、关车门与进站; 售票员负责售票、进出站后观察车门,给司机发开关门信息;正常状态下,各自活动,司机开车,售票员售票;在进出站时双方要进行进程同步。 为了理解这一问题,我们举一个寄信的例子。假设你要寄一封平信,大致过程如下: 1、你把信写好——相当于生产者制造数据 2、你把信放入邮筒——相当于生产者把数据放入缓冲区 3、邮递员把信从邮筒取出——相当于消费者把数据取出缓冲区 4、邮递员把信拿去邮局做相应的处理——相当于消费者处理数据 操作系统知识点看似繁杂,但究其原理,在对不同系统资源功能进行管理时,所采取的策略和方法有很多是相同的。从操作系统四种重要实现技术出发的横向技术线包括中断技术、共享技术、虚拟技术和缓冲技术。 (1)中断技术模块是实现程序并发执行与设备并行操作的基础,它包括中断类型、中断优先级、中断事件各知识单元。中断类型知识单 元包括外中断、内中断知识点;中断优先级知识点在不同的系统中有不同的规定;中断事件知识单元包括进程创建与撤消、进程阻塞与唤醒、分时时间片、缺页中断与缺段中断、I/O操作、文件操作各知识点。 (2)共享技术模块是提高资源利用率的必然途径,它包括处理机共享、存储共享、设备共享、文件共享各知识单元。处理机共享包含进程的并发执行;存储共享包含外存储器共享、内存储器共享知识点;设备共享包含SPOOLing系统;文件共享包含便于共享的文件目录。(3)虚拟技术模块是把一个物理实体变为若干面向用户的逻辑单元,使资源的用户使用与系统管理相分离,从而提高资源利用率和安全性方,它包括虚拟处理机、虚拟存储器、虚拟存储器方法、虚拟设备、虚拟文件各知识单元。虚拟处理机包含多进程管理;虚拟存储器包含地址转换、中断处理过程、置换知识点;虚拟存储器方法包含页式管理、段式管理、段页式管理各知识点;虚拟设备包含设备共享;虚拟文件包含文件共享。 (4)缓冲技术模块是异步技术的实现前提,可大大提高相关资源的并行操作程度,它包括存储管理缓冲技术、设备管理缓冲技术、文件管理缓冲技术各知识单元。存储管理缓冲技术包含快表;设备管理缓冲技术包含硬缓冲、软缓冲、SPOOLing系统中的输入/输出井知识点;文件管理缓冲技术包含记录成组技术、文件表的打开。 操作系统这门课程并不是教你如何使用操作系统的,而是讲操作。总而言之,操作系统的一些原理在生活中都可以找到相应的例子。结合生活中的例子,可以化抽象为具体,我们会更加清楚地了解到其原理与操作过程。我觉得通过我们的不断学习,结合生活中的实际问题,我们就会把操作系统学得更好。总体来说,通过这次的对操作系统的总结,有收获也有遗憾、不足的地方,但我想,我已经迈入了操作系统的大门,只要我再认真努力的去学习,去提高,凭借我对网页设计的热情和执着,我将来设计出的网页会更加专业,更完善。 感谢老师在百忙中阅卷,也感恩老师这学期以来对我的照顾,在老师的深刻讲授下让操作系统这门十分枯燥和难理解的学科变得生动有趣。祝愿老师早日职称晋升,立项通过,身体健康,阖家欢乐。谢谢老师! 操作系统C 开放性考核 工学院 自动化系14级11班 14032316 李大鹏 指导教师 张博 电脑使用一段时间后机箱里会存积大量的灰尘,这些灰尘会影响硬件的散热,尤其会影响cpu的散热。具体的表现是主机工作时噪声变大,经常出现操作反映迟缓等现象(有时候病毒、木马和垃圾文件过多也是此现象,所以要具体情况具体对待)。那么多长时间清扫一次合适呢?这要看你的机器所处的环境的浮尘量了,一般在自己家里一个季度到半年清扫一次就可以了(新买的电脑建议在过了保修期以后再清扫,因为一旦打开机箱即保修自动终止),因为对于新手来说过于频繁的清扫反而会增大硬件意外损坏的风险。清扫时将机箱盖打开,用软毛刷子轻轻扫去附着在主板各硬件表面的灰尘,然后将cpu风扇拆下(散热片不要从主板上拆下来),仔细扫去风扇叶片和散热片缝隙里的灰尘。然后拔掉内存,将内存插槽和内存条上的触点用潮湿的软布轻轻的擦干净。最后将所有部件装回原位就可以了。 [操作系统维护] 关于操作系统的维护网上有很多这方面的内容,我这里就不过多的介绍了。不过我要说一下我自己的一些经验。 1、对于新手要尽量安装一键还原工具。一些品牌机都会带有一键还原工具,如果是组装的机器或是没有预装操作系统的品牌机,都是没有此类软件的,建议你在安装完操作系统后的第一时间安装这些软件并备份系统盘。 2、重装或更换操作系统前把一键还原工具卸载掉。因为这些软件很多都会保护引导区(mbr),所以在安装了这类软件后无法完成系统的重装。(所以我现在是不用一键还原的) 3、不要把“我的文档”放在系统盘。因为在“我的文档”中往往会保存一些比较大的文件,如果在系统盘,会占用本来就有限的系统盘空间,而且在一键还原或重装系统后系统盘的数据会被全部重写,原来的文件都将不复存在。 4、整理c盘的碎片时切忌不要让电脑做任何事情。这一点我深有体会,我曾经因为在整理碎片时浏览网页而导致系统崩溃。 5、尽量安装功能多的软件。这样可以减少系统中软件的数量,从而节省磁盘空间,但也不要过于求大求全,够用即可。 6、对于有经验的人来说可以关闭自动更新和系统还原,这样可以让系统运行更顺畅。 7、软件能用原版就用原版。很多软件都有破解版、汉化版、简化版、增强版等版本,这些版本很多都存在问题,有的还有病毒,所以软件还是原版好。 8、系统优化要慎重。我曾经因优化后系统不能正常工作而重装。 9、卸载软件后要及时删除其安装目录。很多软件在卸载后会在其安装目录里保留一些文件,虽然一般都不是很大,但系统用的时间长了难免会留下大量这类垃圾文件。所以在卸载完一个软件后要查看其安装目录是否依然存在,如果存在就将其删除,无法删除的可以在安全模式下删除。 10、尽量避免强行终止进程。这样可以减少垃圾文件的产生,有时候被强行终止后的程序还会工作不正常,甚至彻底不能用了。 操作系统心得体会(2): 对于此次课程设计,我早在寒假就借了linux相关书籍参看,但上面讲的主要是有关linux操作方面的内容,编程方面讲得很少,而且在假期中也并不知道课设的题目是什么,因此此次课设基本上都是在开学后的这两周内完成的。 以前做过的软件方面的课设如c语言课设、数据结构课设都是在假期完成的,由于自己是一个十分追求完美的人,因此几乎每次都花了将近大半个假期的时间来做,如c语言就花了一个多月的时间来做,分数当然也较高,有90来分。对于课程设计,我历来都是相当认真的,此次操作系统的课程设计当然也不例外。可是linux以前没怎么接触过,学校也没怎么系统地讲过,在刚接到题目时除了知道如何用gcc编译等等,几乎可以算作处于一无所知的状态。时间紧任务重,要从对linux一无所知的状态到独立出色地完成课设,不下点苦功夫是不成的。那两周里我除了吃饭睡觉几乎就没离开电脑过,有时时间晚了食堂关门饭都没得吃了。终于,在这样近乎玩命地学习工作下,身体撑不住了,在第二周周三晚上我发烧了。但是眼看就要到检查的日期了,而我的课设也就快完工了。我不想因为看病而耽误下去弄得前功尽弃,因此只买了点药,继续在电脑前拼命……最后,总算赶在周五检查前做出了较满意的作品。然而这几天一直高烧不退,周五回家(武汉)后就直接倒床昏睡过去,周六早上一量居然还有39°。于是赶紧去附近一家医院看病,连打了两天吊针才算好转过来。而看病用的几百块钱由于不是在校医院看的也无法报销,只好自掏腰包了。第四篇:操作系统心得体会
第五篇:操作系统心得体会