操作系统太基础了,说明了其中重要性。学习操作系统,能够更加好的理解程序是怎么运行的。这对于优化程序,处理bug都有很好的帮助。同时,操作系统的一些设计思想都是通用的,可以移植到其他的程序设计中。比如进程调度算法,可用于io。
1.程序的装入过程:最主要的就是要实现逻辑地址(相对地址)和物理地址的转换。同
2.操作系统很多设计到了底层的硬件,比如硬件的地址变换机构。
3.进程调度是os的主要任务。同时再多进程的os中,存在竞争性资源,这是死锁发生的必要条件。
4.进程调度有两个主要问题:同步(互斥锁),通信:都是由于多线程引发的问题,
------------------------------------------------------------
我们都知道在linux下直接./a.out就可以运行程序了,但是有一个很实际问题是,如果有一个运行很长,甚至死循环程序,用户怎么结束?这种小程序在用户页面也很难查的?是不是将操作系统上的文件移除掉了,程序就会结束运行?控制台启动的程序在关闭控制台时会结束,但是如果不是呢控制台启动的呢?