很快的,一个学期的《操作系统》课程就要结束了,在这个学期,通过老师的传授和课本以及课下的阅读学习,让我对计算机操作系统的一些实现原理和简单的操作过程有了基本的了解。

在学习操作系统之前,我在前面几个学期学习了数字电路、计算机组成原理、微机原理和汇编语言等课程,这些课程让我了解了计算机硬件如处理器、随机访问存储器、输入输出设备、磁盘驱动器等部件的组成及工作原理,于是我就曾想过自己亲手组装,或者在脑海中虚拟组装一下也可以,把这些互相分离的计算机大部件连接起来,万事俱备,然后通上电,期待着显示器出现想要出现的画面。然而,并非如愿以偿,因为事实上,还缺少了一个重要的部分——软件,更确切的说——操作系统。

经过近乎一个学期的学习,我知道了,操作系统是一个由许多软件构成的庞大的程序集合,它不仅仅单是为用户提供友好界面,更重要的是它还管理着计算机系统的全部硬件资源、软件资源及数据资源,从而使计算机各个组成部件能够顺利高效地、资源最大限度地发挥作用。

当计算机开机后,CPU一加电,通过内存中的硬件系统检测和初始化程序完成后,便调用操作系统引导程序,从此,便将此计算机彻底交由操作系统来控制。操作系统是一个需要在CPU上运行的软件,它可以为其他应用软件提供支持,不过,作为此计算机的主宰,每一种操作系统都对它所管理的操作系统提出了种种的格式上的要求。比如每次我在我的计算机上下载应用软件的时候还要看是否能够兼容我的Windows10。

课堂上老师结合书本,很详细的介绍了操作系统主要工作原理。并发、共享、虚拟、异步,是OS共有的基本特征,它们使计算机能够高效的整合利用计算机资源,其实也是OS设计的基本要求。微内核OS结构是当前普遍一种OS设计。由于操作系统越来越强大、复杂,便只保留OS内核中最基本的部分,其他部分根据模块分层,相互独立,视作为进程来交互信息。

进程是操作系统进行资源分配的基本单位,它的基本信息和运行状态是由进程控制块(PCB)来描述和管理的,即所谓的创建进程和销毁进程,其实都是对PCB的操作。进程和线程是有区别的,比如说,打开一个浏览器,即是创建了一个进程,而浏览器里面有很多线程,如http请求线程、事件响应线程等等。线程的并发执行使得在浏览器中点击一个新链接而发起 http请求时,浏览器还可以响应用户的其它事件。线程和进程的并发执行可以提高系统资源利用率和系统吞吐量。

并发执行的进程之间,必须能够相互协调,即按照一定的规则或时序共享系统资源,那么便引入了进程同步机制。经典的进程同步问题有“生产者——消费者”问题、“读者——写者”问题、“哲学家进餐”问题等。如使用信号量机制实现的生产者消费者问题需要对其进行很多控制,确保共享资源能够互斥有效利用,利用管程,即代表抽象共享资源的数据结构及对其实施操作的一组过程,可以很好的解决资源管理问题。

如果同步问题的处理不当甚至会导致系统死锁,这就需要处理机调度算法来进行资源分配。死锁是指两个以上的进程在执行过程中,因为争夺共享资源而造成的一种互相等待的忙等现象。由于资源是互斥访问的,程序就不能继续运行,这就产生了一种特殊现象死锁。最具代表性的避免死锁算法,是Dijkstra的银行家算法。银行家算法必须保证分配资源前,系统有足够的资源分配给进程,且分配之后,系统是安全状态的。

在先前计算机组成原理课程中,我了解了存储器的组成及工作原理,但是,存储器的管理及虚拟内存技术,使我对存储器有了更进一步了解。虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存进行容量扩充的存储器系统。一个虚拟存储器,采用地址映射,将虚拟地址分成存储页面号和偏移量两个部分。为了保证虚拟存储器最大效率的利用,良好的页面置换算法如最佳置换算法、FIFO算法、LRU算法等,是直接影响到系统性能的重要保证。段页式则在扩展内存的基础上,进一步实现了数据的共享和保护。

《操作系统》是作为我专业的核心课程的,对于它的认知仅仅一学期的时间是不够的。实现一个很简单的操作系统大概也需要六七千行代码实现,而单靠一个人实现一个近乎完美的操作系统几乎是不可能的。所以,我们实验是对OS功能的部分简单模拟实现。

未来我想自己动手写一个简单的操作系统,这需要更加深入的学习汇编语言、计算机组成原理、微机原理及C语言数据结构如链表等方面的知识,同时,也需要阅读其他介绍操作系统的书籍资料。

“师父领进门,修行在个人”,回顾这一个学期的学习,有很大的收获,也有不小的遗憾。接下来,我知道,计算机这个大黑匣子,还有很多东西需要我去学习、去应用、去探索。

《操作系统》课程心得体会相关推荐

  1. 计算机系统概述学后感,计算机操作系统学习心得体会总结(2)

    计算机操作系统学习心得体会篇四 课程设计是每一个大学生在大学生涯中都不可或缺的,它使我们在实践中了巩固了所学的知识.在实践中锻炼自己的动手能力;实习又是对每一位大学生所学专业知识的一种拓展手段,它让我 ...

  2. 计算机应用课程的体会,计算机课程心得体会

    微机课心得2019-11-21 今天上午,我们全班同学去第三教学楼509教室上微机课.这节课上的是报表内容,其实在五一劳动节放假之前就已经讲过了,今天上的这堂课是通过做练习复习一下上次学的 计算机课程 ...

  3. 自适应控制课程心得体会

    自适应控制课程心得体会 一.一些课程记录 二.总结 三.自适应控制参考书籍 一.一些课程记录 10.9 对欧拉法求积分加以了解 对提取出的微分方程进行基础的Simulink仿真搭建:自适应控制 10. ...

  4. 计算机辅助插图设计读书心得,计算机辅助设计课程心得体会

    计算机辅助设计课程心得体会 (3页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 五.课程设计的心得体会五.课程设计的心得体会本学期我们开 ...

  5. 小学生上计算机课心得,开展小学生机器人校本课程心得体会.docx

    WORD格式 专业资料整理 开展小学生机器人校本课程心得体会 沈莲 中国工程院院长指出:"机器人的进步和应用是 21 世界自动控制最有说服力成就 ,是 当代学最高意义上的自动化." ...

  6. 大学计算机入学教育心得1000,大学课程心得体会范文大全1000-大学入学教育心得体会1000字,怎么写?...

    大学入学教育心得体会1000字,怎么写? 大学,是每个学子理想的殿堂.我们辛辛苦苦十几载,就为了能够进入自己理想的学府.回收曾经的努力和付出,虽然辛苦,但却很值得,因为我现在如愿以偿了. 每个人在人生 ...

  7. 交互设计课程心得体会

    大家好,我是柳州职业技术学院电子信息工程计算机应用技术(UI方向1班)的宋雨露, 我认为交互设计课程中有用户研究.信息架构.界面设计.用户测试等方面的知识.这些知识对于设计师来说都是非常重要的,因为它 ...

  8. 【论文写作】闵帆老师论文写作课程心得体会30篇

    我的博客一直记录代码,还是第一次记录心得体会.谢谢我闵帆老师.此次博客记录了我在这学期上闵帆老师<论文写作>后的一些心得体会.在这节课上,我学习了写论文的注意事项.写论文所用的工具还有论文 ...

  9. 王达网络课程心得体会

    当今的社会是信息的社会,世界开始全面信息化.全球化.为了紧跟时代的脉搏,参加工作多年来,一直没有停止过学习,钻研业务知识,提升业务能力,也曾参加过财务专业的自学考试,而最终未能实现自己的大学梦.孚日立 ...

最新文章

  1. amd一点也不yes_[电脑]AMD:环顾四周,我只能超越自己了?5900Xamp;5600X VS 3900X开箱体验...
  2. 编辑docker容器中的文件
  3. 简明python教程 --C++程序员的视角(三):模块
  4. 思考 | 人工智能时代:AI芯片能否实现弯道超越?
  5. c语言中从键盘上输入三个数,将之排序后按由大到小的顺序输出,从键盘上输入3个数,将它们按由大到小的顺序排列好输出...
  6. java管道流文件的复制_JavaIO 总结笔记三 基本字节字符输入输出流和文件复制...
  7. python全排列问题_Python基于回溯法子集树模板解决全排列问题示例
  8. 浙江非税设定服务器信息,非税操作手册.doc
  9. 升级xcode7.0 第三方库不能用的解决方法(bitcode是什么鬼?)
  10. Ninject.Web.Common,Ninject.MVC3源码分析
  11. linux编译框架的搭建,Linux下单机版的beego框架的搭建
  12. libxml2 常用接口
  13. 如何pdf转换word文字并重新排版格式?
  14. 考公 | 粉笔网课笔记——申论 吴越
  15. Mac下将ISO写入U盘镜像
  16. 最近在玩跑跑卡丁车!
  17. Maven打包Excel等资源文件损坏问题
  18. TLS协议分析 (九) 现代加密通信协议设计
  19. mac提示dns错误如何解决
  20. LLVM-clang

热门文章

  1. CentOS8提高篇15:tar命令详解
  2. [vue2.x]ref的使用
  3. Python每日一学 03——计算半径为r的圆的面积
  4. 6、Spring之依赖注入
  5. L349. L350两个数组的交集
  6. java中Math常用函数
  7. CC00023.kylin——|HadoopOLAP_Kylin.V23|——|Kylin.v23|Kylin构建Cube|流式构建.V1|
  8. 前端学习——第二天HTML基本知识
  9. bagging 与boosting的联系与区别
  10. linux常用定时任务,Linux常用指令---定时任务