os

操作系统的运行原理, 绝对是程序员受益一生的知识。 比如说后端编程,不了解OS的进程、线程、 页面缓存,文件系统,I/O 就去大谈如何实现一个高并发、大数据量的网站简直就是笑话
我们的计算机知识就像一座金字塔, 底层是数学, 上面是数字电路,然后是汇编,再往上是操作系统、网络,数据库、高级编程语言、框架等等…
我们每个人不可能精通这个金子塔的每一层, 但是要掌握、理解构成这个金字塔的核心概念。
PV操作汇总
操作系统复习整理参考资料
PV操作习题汇总

内核和操作系统的关系
内核是操作系统最基本的部分,但不是操作系统的全部。
内核,是一个操作系统的核心。是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。而操作系统一般包括内核、驱动程序、接口库、外围等组成部分,内核也只是其中一个重要的组成部分。
关于操作系统和操作系统内核这两个概念
(1)操作系统包括操作系统内核(这是必然的),也就是说内核程序是操作系统所包含的一组计算机程序中的一个子集,所以内核程序也是一组计算机程序,而这些内核程序是操作系统中最常使用基本模块,直接与硬件打交道,主要由用于管理存储器、文件、外设和系统资源的那些部分组成。
(2)内核程序一直占据内存中的一段内存,这样处理器可以随时调用这些内核程序;
(3)而操作系统除了内核程序外,还有包括其他一些基本组件,如文本编辑器、编译器、用来与用户进行交互的程序等

进程
狭义定义:进程是正在运行的程序的实例
广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次执行过程。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。

线程的概念:线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。每个线程都是作为利用CPU的基本单位,是花费最小开销的实体。
进程和线程
这俩家伙的重要性不言而喻,因为你写的所有的程序要么会成为一个独立的进程去执行,要么是被一个进程中的线程收编,没有例外 。
进程是对一个运行中的程序的抽象,没有这个概念,我们是无法实现一边听歌、一边上网的惬意生活。
每个进程都有一个被操作系统老大维护的进程控制块, 里边保存了这个进程在运行时的重要信息,是进程能来回切换的重要保证。 而线程则寄居于进程之内, 共享进程提供福利(代码和数据)的同时, 还拥有自己的一亩三分地。 线程的出现,提升了系统的性能、吞吐量和响应性。
但是多进程/多线程编程也带来了一系列问题: 同步,通信,锁, 死锁。。。
作为码农我们要理解的核心概念是: 分组交换, TCP/IP参考模型, socket , http(s)。

死锁
定义:多个进程在执行过程中,因争夺同类资源且资源分配不当而造成的一种互相等待的现象,若无外力作用,它们都将永远无法继续执行,这种状态称为死锁,这些处于等待状态的进程称为死锁进程。
死锁条件:互斥、请求和保持、不可剥夺、循环等待
解决方法:预防、避免、检测和解除
预防:
请求和保持(不请求了):预先静态分配方法,即进程在运行前一次申请完它所需要的全部资源
不可剥夺:(可以剥夺),会造成前段时间的工作失效
循环等待:顺序资源分配法——给系统中的资源编号,规定每个进程,必须按编号递增的顺序请求资源,同类资源一次申请完。也就是说,只要进程提出申请分配资源Ri,则该进程在以后的资源申请中,只能申请编号大于Ri的资源。
避免死锁:判断系统安全状态
检测死锁:资源分配图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值