Linux内核:进程调度、内存管理、虚拟文件系统、网络接口、进程通信

进程调度:系统对进程的多种状态之间的转换策略。
  SCHED_OTHER 针对普通进程的时间片轮转调度策略。系统给所有的运行状态的进程分配时间片,在当前进程的时间片用完之后,系统从进程中优先级最高的进程中选择进程运行。
  SCHED_FIFO  针对运行的实时性要求比较高,运行时间短的进程调度策略。系统按照进入队列的先后进行进程的调度,在没有更高优先级进程到来或当前进程没有因为等待资源而阻塞的情况下,会一直运行下去
  SCHED_RR    针对实时性要求比较高,运行时间比较长的进程调度策略。与SCHED_OTHER类似,不过SCHED_RR进程调度的优先级高得多。系统分配给SCHED_RR进程时间片,然后通过轮循运行这些进程,将时间片运行完的进程放入队列的末尾

1.对于SCHED_OTHER,即普通进程调度策略,它应该是基于CFS, 它的特点是即使是最低优先级,他也能获得一定的时间片。
  2.SCHED_FIFO:高优先级会抢占低优先级,高优先级运行期间,低优先级没法抢占,只能等到高优先级主动退出;对于同等优先级,先运行的进程会一直占据cpu, 只有等到先运行的进程主动退出,后续进程才能得到时间片。 
  3.SCHED_RR: 同上,高优先级会抢占低优先级,高优先级运行期间,低优先级没法抢占,只能等到高优先级主动退出, ;对于同等优先级的进程,各个进程会轮流运行一定的时间片(大约100ms)。

进程的优先级范围:0-139, 0-99是实时进程,100-139是普通进程

内存管理:多个进程间的内存共享策略。
  虚拟内存可以让进程拥有比实际物理内存更大的内存,可以是实际内存的很多倍,每一个进程的虚拟内存有不同的地址空间,多个进程的虚拟内存不会冲突。
  虚拟内存的分配策略是每个进程都可以公平地使用虚拟内存。虚拟内存的大小通常设置为物理内存的两倍。

虚拟文件系统
  Linux常用的文件系统ext2和ext3,ext2文件系统用于固定文件系统和可活动文件系统。ext3文件系统是在ext2上增加日志功能后的扩展,两者可以互相转换

网络接口:分为网络协议和驱动程序
  网络协议是一种网络传输的通信标准,网络驱动是对硬件设备的驱动程序。

进程间通信:进程之间需要进行数据的交流才能完成控制、协同工作
  通信方式:共享内存、消息队列、信号、管道、套接字、信号量

Linux网络编程(一):Linux内核相关推荐

  1. linux网络编程大杂烩==Linux应用编程7

    一.Linux 网络编程框架 1.网络是分层的 (1)OSI 七层模型:应用层.表示层.会话层.传输层.网络层.数据链路层.物理层. (2)网络为什么要分层:互联网及其复杂,需要分层以便更好地实现网络 ...

  2. linux网络编程 ppt,LINUX网络编程.ppt

    <LINUX网络编程.ppt>由会员分享,可在线阅读,更多相关<LINUX网络编程.ppt(47页珍藏版)>请在人人文库网上搜索. 1.LINUX网络编程,行业事业部 黄文举 ...

  3. linux 网络编程 ping,Linux 网络编程基础(4) -- Ping 的C代码实现

    1.背景 在进行网络编程的时候,通常使用的协议有TCP协议,UDP协议.这些协议在简历套接字之初需要制定套接字的类型,比如TCP应当设置为 SOCK_STREAM, UDP对应的套接字应当设置为SOC ...

  4. linux网络编程socket,Linux网络编程入门

    socket又叫做套接字,网络编程又叫做套接字编程.而socket地址也称为套接字地址,可以理解为计算机的网络地址. 1.理解socket地址 假设小明同学想给女神打电话需要知道对方的电话号码才能继续 ...

  5. 【Linux网络编程】Linux多播问题(No such device)解决方法

    多播的测试代码如下: #include <stdio.h> #include <string.h> #include <stdlib.h> #include < ...

  6. linux 网络编程 51cto,Linux服务器开发,2小时搞定高并发网络编程

    一.使用多线程处理高并发的弊端 多线程处理高并发是常用同时处理多个并发用户请求的方式,但线程数过多会增加系统的资源消耗(线程本身占用的资源+线程切换带来的系统开销),同时因硬件和软件的限制,操作系统支 ...

  7. linux网络编程客户端,Linux网络编程入门

    利用上述步骤,本节我们实现一个客户端,如下: #include #include #include #include // sockaddr_in #include int main() { cons ...

  8. 【Linux网络编程】

    文章目录 一. Linux的网络模型 1. 网络模型概述 2. Linux网络协议栈包含的网络协议 3. Linux网络编程模型 4. socket套接字编程模型 二. UDP编程 1 编程准备-字节 ...

  9. linux 网络编程学习

    linux 网络编程学习  Linux网络编程学习路线 - CTHON - 博客园 (cnblogs.com)

  10. Linux网络编程篇之ICMP协议分析及ping程序实现

    Linux网络编程系列: Linux网络编程篇之Socket编程预备知识 Linux网络编程篇之TCP协议分析及聊天室功能实现 如果对Linux网络编程,对socket通信不是太清楚的同学,强烈推荐看 ...

最新文章

  1. linux文件操作篇 (一)文件属性与权限
  2. weblogic 配置mysql数据源Cannot load driver class: com.mysql.jdbc.Driver的问题
  3. 人群行为分析--Understanding Pedestrian Behaviors from Stationary Crowd Groups
  4. 简单介绍ASP中Cache技术的应用
  5. poj 1092 Farmland (Geometry)
  6. android定时循环,Android AlarmManager实现定时循环后台任务
  7. bzoj1034题解
  8. 2021-06-20 pip有时候需要加上--user安装才好使
  9. 3-Scala控制结构
  10. struts2登录注册示例_Struts 2文件上传示例
  11. pycharm怎么安装python3.6_【python】Mac在Pycharm中导入python3.6(简单易行)
  12. 非晶金属模型建模:Ovito方法
  13. 安全HCIP之eSight
  14. 能看清农村房子的卫星地图软件
  15. 面向对象课程 第三次博客总结
  16. 如何把pdf转成图片jpg格式?俩个方法,1分钟搞定
  17. 如何把多个pdf文件合并成一个pdf
  18. 龙智集团赢得2022年Atlassian与AWS云销售竞赛
  19. 同花顺股票交易接口定义被类实现
  20. nginx+rtmp+OBS搭建音视频直播服务

热门文章

  1. 深圳上海场 | 神策 2019 数据驱动大会「PPT 下载」新鲜出炉!
  2. 2.6 Go 读取CSV
  3. SSM项目使用GoEasy 实现web消息推送服务
  4. springMVC 前后台日期格式传值解决方式之一(共二) @DateTimeFormat的使用和配置...
  5. 正则表达式的简单认识
  6. c#扩展方法奇思妙用高级篇七:“树”通用遍历器
  7. 命令2-Create Project Tree
  8. 用SPSS进行单样本T检验(One -Sample T Test)
  9. DCD DSR DTR RTS CTS表示什么意思
  10. if submission is included through the excel