终于有人把操作系统网络系统线程进程IO模型全部总结出来了

Posted 司腾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了终于有人把操作系统网络系统线程进程IO模型全部总结出来了相关的知识,希望对你有一定的参考价值。

为什么要学习操作系统?

当你在电脑上玩游戏、与朋友聊天或编写一个程序并加载运行的时候,你有没有一种像在观看魔术的感觉?编写好的程序能够编译运行,计算出结果,并显示或打印出来。你有没有觉得它很神秘?

如果想揭开这层神秘的面纱,你就得学习操作系统。

对于计算机行业的朋友们来说,操作系统绝对是一门能让你学吐血的课程,这是为什么呢?我认为有这些原因:

第一 ,专业名词晦涩难懂;

第二,它摸不着,你要想看,倒是能看见,但你看的懂吗?

正是这两个原因让我们跪倒在了操作系统面前。这时站在巨人的肩膀上学习无疑会省很多力气。今天LZ就把前段时间一位老哥私授我的《图解系统》分享出来给大家,希望对大家有所帮助!

图解系统

图解系统不仅仅涉及了操作系统的内容,还涉及一些计算机组成和 Linux 命令的内容,

当然还是操作系统的内容占比较高,基本把操作系统进程管理、内存管理、文件系统、设备管理、网络系统这五大结构图解了,其中进程管理和网络系统这两个章节篇幅比较多,进程管理不仅包含了进程与线程的基本知识,还包含了进程间通信,多线程同步、死锁、悲观锁和乐观锁。网络系统包含 I/O 多路复用、零拷贝、Reactor 等等。

目录一览

硬件结构

操作系统结构

内存管理

进程与线程

调度算法

文件系统

设备管理

网络系统

Linux命令

内容精选

冯诺依曼模型

Linux的设计

虛拟内存

线程

调度算法

文件的储存

存储系统I/O软件分层

Linux网络协议栈

性能指标有哪些?

写在文末的箴言

读万卷书,行万里路。作为程序员,都说职业生涯到35岁就结束了,实际上大可不必相信这种年龄焦虑,35岁上的程序员也有不少,要不想被市场淘汰,首先你的有价值,你没有了价值,无论是什么职业都被社会淘汰的。

学习,永远不会辜负你,靠学习得到的,永远是你最宝贵的财富。 

操作系统线程

前言:
进程的概念包括了两个不同的特点:1.资源全部权;2.调度/运行能力;
既然这两个特点是独立的。那么操作系统应该可以独立地处理它们,这就引出了线程的概念。为区分这两个特点,我们把分派的单位称为线程或者轻量级进程。而把拥有资源全部权的单位通常仍称为进程。


线程的概念:
指操作系统在单个进程内支持多个并发运行路径的能力。


线程的长处:
1.在进程中创建线程比直接创建进程快;
2.终止线程比终止进程快;
3.同一个进程内线程切换比进程切换快;
4.线程提高不同运行程序的通信效率。(进程通信须要内核的介入。而进程内多个线程之间共享内存和文件。无需调用内核)

:进程挂起操作涉及把一个进程的地址空间换出内存来为其它进程的地址空间腾出位置,由于一个进程中全部线程共享同一地址空间,所以它们都会同一时候被挂起。


线程分类:
1.用户级线程:
    在一个纯粹的用户级线程软件中,有关线程管理的全部工作都由应用程序完毕,内核意识不到线程的存在。不论什么应用程序都能够通过使用线程库被设计成多线程程序。线程库是用于用户级线程管理的一个历程包,它包括用于创建和销毁线程的代码、在线程间传递消息和数据的代码、调度线程运行的代码。以及保存和恢复线程上下文的代码。

    长处:
    1.线程切换用不着内核态特权;
    2.调度能够是应用程序相关的;
    3.用户级线程能够在不论什么操作系统中执行。不须要对底层内核改动以支持用户级线程
    缺点:
    1.用户级线程运行系统调用时,不仅这个线程会被堵塞。进程中全部线程均堵塞。
    2.内核一次仅仅把一个进程分配给处理器。因此一次进程中仅仅有一个线程能够运行。
2.内核级线程:
    纯粹内核级线程中,有关线程管理的全部工作由内核完毕,应用程序部分没有进行线程管理的代码。缺点是一个线程传送到还有一线程时,须要内核的状态转换。


























以上是关于终于有人把操作系统网络系统线程进程IO模型全部总结出来了的主要内容,如果未能解决你的问题,请参考以下文章

Cpython解释器下实现并发编程——多进程多线程协程IO模型

Cpython的进程,线程,协程,io模型

操作系统线程

10W+的收藏量,Redis 多线程网络模型全面揭秘,熬夜总结今天终于分享出来了

nginx I/O模型

python并发学习总结