IOS 软件结构读书笔记

 ios的结构主要聚焦在怎样快速和有效地转发包。

IOS 软件结构读书笔记

  现代操作系统的两大功能:硬件控制和资源管理。

  同时运行多个程序就是多任务。支持这种的就是多任务操作系统。多个程序中的一个子程序叫做一个线程。

  每一个线程都有一个cpu注册值,这个值叫做context=上下文。但是可以共与其他线程享内存地址空间,占有相同地址空间的一组线程叫做进程。

  一个进程控制一个子集的操作系统资源。操作系统和cpu都支持虚拟内存,每个进程都可能运行在分离的地址空间,用来保护其他进程。

  决定运行哪个进程,这叫做预留。预留经常是由一个操作系统的核心来做的,这个叫做内核。

  一个操作系统会使用多个手段来预留线程。这也取决于操作系统的可选支持情况。

  先进、先出是一个最简单的方式。它所占负载很小。是公平的:即所有的线程都均等,先来,就先服务。FIFO.

  FIFO不适合实时的交互处理应用,实时处理需要快速、低cpuzu占用率

  一种可能的解决方法是给每个进程机遇应用地绑定优先级,保证实时应用先占用cpu.

  预约方式利用争抢来取代运行完整的,这个叫做争适者生存。这种操作系统叫做适者生存的多任务操作系统。

  注意:上下文交换发生生在操作系统内核从cpu删除一个线程,且把其他线程填进来的时候。

  换言之,上下文交换发生在电脑在当前工作下改变任务的时候上下文交换可以使安静的执行在cpu时间的术语中,因为所有的处理器注册器必须保存给开始拿掉cpu和还原给一开始放入cpu的线程。上下文本质是让争抢线程知道谁离开了,并让正要运行的线程知道上一个进程持续的时间

  多任务争抢的好处是:他是周期性的。

  他是难以打破的,没有谁可以垄断资源。

  缺点是:他不如全运行完的方式有效利用。他加大了软件应用的复杂性。

 

 show process Command 详细解释:

  CPU utilization for five seconds: 98%/65%; one minute: 87%; five minutes: 49%

  PID QTy       PC Runtime (ms)    Invoked   uSecs    Stacks TTY Process

  1 Csp 602F5488            4        472       8 2624/3000   0 Load Meter

  2 ME  60542634         3192       4261     749 7756/9000   0 OSPF Hello

 3 Lst 602E0E00         1408        278    5064 5632/6000   0 Check heaps

 

  4 Cwe 602D85E0            0          1       0 5572/6000   0 Chunk Manager

  5 Cwe 602E6AA8            4         11     363 5620/6000   0 Pool Manager

  6 Mst 6025F148            0          2       0 5588/6000   0 Timers

  7 Mwe 6001D610            0          3       0 5476/6000   0 Serial Backgroun

  8 Mwe 60326EE0            0          1       011608/12000  0 OIR Handler

  9 Msi 6033B2D0            0         80       0 5612/6000   0 Environmental mo

  10 Lwe 6033D0A8         2272        298    7624 4916/6000   0 ARP Input

  11 Mwe 604D0180            0          4       0 5544/6000   0 DDR Timers

  12 Mwe 604E67A8            0          2       011596/12000  0 Dialer event

  13 Lwe 60638AE8           12          2    6000 5592/6000   0 Entity MIB API

  14 Mwe 600218D8            0          1       0 5632/6000   0 SERIAL A'detect

  15 Cwe 602EBBB0            0          1       0 5636/6000   0 Critical Bkgnd

  16 Mwe 602B0370          172       1599     10710720/12000  0 Net Background

  17 Lwe 602544C8            4         27     14811404/12000  0 Logger

  18 Msp 602722D8          124       2348      52 5424/6000   0 TTY Background

 

  19 Msp 602AF8F0           24       2358      10 5756/6000   0 Per-Second Jobs

  20 Msi 60333560           68       2352      28 5616/6000   0 Partition Check

  21 Hwe 602AFB64        10792      15682     688 5608/6000   0 Net Input

  ——More—— _

  ? PID— 进程描述号。 每一个进程都有一个单独的数字来描述和与其他的进程相区分。

  ? Qty— 进程优先级和进程的状态。 第一个字母的优先级含义如下:

  o K— 没有优先级,进程被杀了。

  o D— 没有优先级,进程瘫了。

  o X— 没有优先级, 进程中断了。

  o C— 紧急优先级

  o H— 高优先级。

  o M— 中优先级。

  o L— 低优先级。

  剩下的两个字母代表当前的处理状态:

  o *— cpu正在处理。

  o E— 进程正在等待一个重要动作。

  o S— 进程休眠了。

  o rd— 进程已经在运行了。

  o we— 进程idle了, 等待一个重要动作。

  o sa— 进程idle了, 等待一个指定的绝对时间的产生。

  o si— 进程idle了,等待一个指定的时间间隔。

  o sp— 进程idle了, 等待一个指定的时间间隔(周期性的)。

  o st— 进程idle了,等待一个时间终止。

  o hg— 进程挂起了。

  o xx— 进程死了。

  ? PC— 当进程持续放弃cpu时程序计数注册器的内容。 这个地方写的是内存的地址用以代表进程开始执行写一次占用的cpu.值0代表正在运行。

  ? Runtime— 使用cpu累计时间 (毫秒级)。

  ? Invoked— 进程的建立起进程运行在cpu的总时间

  ? uSecs— 每次进程使用平均cpu时间 (毫秒级)。

  ? Stacks— 堆叠空间使用状况。 斜线右边的数字(/)表示总的堆叠空间。 左边的数字代表空间利用率的最低水平线。

  ? TTY— 控制台设备相关的进程。0代表进程不是被控制台和通讯器相关的主系统控制台

  ? Process— 进程的名字。进程的名字不需要是唯一的 (一个进程的几分拷贝可以同时是激活状态的)。 但是进程id号必须是唯一的。。

  如果你运行了show processs命令在几个不同的ios系统, 你会发现有几个进程一直都有。 这些进程中的大多数 是用来执行家务管理的或者是提供服务给其他的进程。

 

  普通常见系统进程和他们的功能。

  系统进程代号 功能

  EXEC  console和异步口直接tty上来的命令行 (CLI)。 EXEC 进程提供用户 输入和对接口粘贴的支持。

  Pool manager  管理缓冲池

  Check heaps  周期性地确认 IOS代码运行时间的完整性 以及结构化内存的负载。

  Per-minute jobs  一般系统进程,每60秒进行一次系统维护, 如 检查系统背景进程的堆叠

  Per-second jobs  一般系统进程,用以运行每秒都要重复的工作。

  Critical background  紧急优先级进程, 用来执行基本的系统服务, 如:当队列元素被用尽的时候,预留附加的IOS 队列元素 .

  18 Msp 602722D8          124       2348      52 5424/6000   0 TTY Background

 

  19 Msp 602AF8F0           24       2358      10 5756/6000   0 Per-Second Jobs

  20 Msi 60333560           68       2352      28 5616/6000   0 Partition Check

  21 Hwe 602AFB64        10792      15682     688 5608/6000   0 Net Input

  ——More—— _

QQread.com 推出各大专业服务器评测 Linux服务器的安全性能 SUN服务器 HP服务器 DELL服务器 IBM服务器 联想服务器 浪潮服务器 曙光服务器 同方服务器 华硕服务器 宝德服务器

 

 

  ? PID— 进程描述号。 每一个进程都有一个单独的数字来描述和与其他的进程相区分。

  ? Qty— 进程优先级和进程的状态。 第一个字母的优先级含义如下:

  o K— 没有优先级,进程被杀了。

  o D— 没有优先级,进程瘫了。

  o X— 没有优先级, 进程中断了。

  o C— 紧急优先级

  o H— 高优先级。

  o M— 中优先级。

  o L— 低优先级。

  剩下的两个字母代表当前的处理状态:

  o *— cpu正在处理。

  o E— 进程正在等待一个重要动作。

  o S— 进程休眠了。

  o rd— 进程已经在运行了。

  o we— 进程idle了, 等待一个重要动作。

  o sa— 进程idle了, 等待一个指定的绝对时间的产生。

  o si— 进程idle了,等待一个指定的时间间隔。

  o sp— 进程idle了, 等待一个指定的时间间隔(周期性的)。

  o st— 进程idle了,等待一个时间终止。

  o hg— 进程挂起了。

  o xx— 进程死了。

  ? PC— 当进程持续放弃cpu时程序计数注册器的内容。 这个地方写的是内存的地址用以代表进程开始执行写一次占用的cpu.值0代表正在运行。

  ? Runtime— 使用cpu累计时间 (毫秒级)。

  ? Invoked— 进程的建立起进程运行在cpu的总时间

  ? uSecs— 每次进程使用平均cpu时间 (毫秒级)。

  ? Stacks— 堆叠空间使用状况。 斜线右边的数字(/)表示总的堆叠空间。 左边的数字代表空间利用率的最低水平线。

  ? TTY— 控制台设备相关的进程。0代表进程不是被控制台和通讯器相关的主系统控制台

  ? Process— 进程的名字。进程的名字不需要是唯一的 (一个进程的几分拷贝可以同时是激活状态的)。 但是进程id号必须是唯一的。。

  如果你运行了show processs命令在几个不同的ios系统, 你会发现有几个进程一直都有。 这些进程中的大多数 是用来执行家务管理的或者是提供服务给其他的进程。

 

  普通常见系统进程和他们的功能。

  系统进程代号 功能

  EXEC  console和异步口直接tty上来的命令行 (CLI)。 EXEC 进程提供用户 输入和对接口粘贴的支持。

  Pool manager  管理缓冲池

  Check heaps  周期性地确认 IOS代码运行时间的完整性 以及结构化内存的负载。

  Per-minute jobs  一般系统进程,每60秒进行一次系统维护, 如 检查系统背景进程的堆叠

  Per-second jobs  一般系统进程,用以运行每秒都要重复的工作。

  Critical background  紧急优先级进程, 用来执行基本的系统服务, 如:当队列元素被用尽的时候,预留附加的IOS 队列元素 .




 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值