文档章节

linux-1多任务实现方式

AnSn
 AnSn
发布于 2017/08/29 12:07
字数 920
阅读 6
收藏 0

1)输入设备速度慢与CPU执行时间快这样情况下,CPU会经常空闲着,解决方法:把CPU执行时间分段,称时间片;同时内存也分段。
    A.原理:
    按道理一个CPU一次只能执行一个程序,一个内存段也只能存一个可执行程序。CPU执行时间是连续的,而且访问内存找指令也是从编号
    依小到大顺序。
    CPU时间和内存分段后,每个时间片执行一个可执行程序,并行执行的多个程序被分在标有编号的内存段中,每个CPU时间片对应一个内存段。用进
    程监控前一个程序执行情况,如果在本次CPU的执行周期的本次时间片内执行不完,保留数据和状态,并接着执行本周期内到来的时间片
    所负责的管理和执行的程序,等本次CPU时间周期结束后接着开始执行新的周期时间,而未执行完的程序又在上一个时间片位置接着再运行剩
    下的程序命令。
    而正在运行的程序就是进程,因此进程是有多个的。
    而操作系统是负责分配CPU的时间片和内存段,并保证时间片内正在执行的程序(称进程)按规定时间内运行并结束,保留状态和运算器的执行结果,
    称任务的监控、调度及管理。
    B.操作系统是一种通用软件,装到主机上时就把硬件本身所提供的计算能力使用软件的方式给模拟出来了,所以用户程序并不是直接操作硬件,而是
    与操作系统所提供的接口打交道,是间接性的。
    C.操作系统为了简化接口往往做得很底层。操作系统里面有个内核,内核的功能是系统调用。把最低层的接口功能封装成系统调用,这些封装起来的
    最低层系统调用即称内核,用户程序要访问硬件,必须经过请求内核,由内核代替用户程序访问硬件,
    硬件把结果返回给内核,内核再把返回的结果再给返回给用户,所以用户是不能直接接触硬件的。由此可见内核是起到中间人作用
    D.把最底层的系统调用二次封装,他们的一个或者多个功能封装起来做成更高级的接口,这个接口就是库,即所谓的API。
                                            用户程序
                                            库
                                            操作系统
                                            硬件
2)sell是一个软件,它把计算机的功能关联到一个接口上,而这个接口是人类可以接触的和操作的,从而实现人机交互,即人可以操作用户程序,用户
    程序在和库,操作系统及硬件直接或间接打交道。
                                            
3)不同的操作系统底层是由汇编语言编写的,写出的代码却不相同,主机的硬件接口却是固定的,那不同的操作系统能跑在主机的上运行就需要
    做一些处理了,如操作系统的最低层不变,但是在不同操作系统的中间不同处再提取出一个双方都能适应的环境接口,只要提供这个接口,任何
    主机都能适应不同的操作系统了,而这个环境接口就是API,即所谓的库。

© 著作权归作者所有

共有 人打赏支持
AnSn
粉丝 1
博文 6
码字总数 2834
作品 0
贵港
其他
私信 提问
Python---多进程与多线程笔记

1.多进程与多线程介绍 / 区别 现在,多核CPU已经非常普及了,但是,即使过去的单核CPU,也可以执行多任务。由于CPU执行代码都是顺序执行的,那么,单核CPU是怎么执行多任务的呢? 答案就是操...

wayne_dream
07/08
0
0
内核同步机制之Mutex Exclusion

S3C2440在内核版本2.6.34下开发ADC驱动时,会发现驱动程序里用了互斥通信来实现同步: 在wikipedia中式这么定义Mutex Exclusion的: In computer science, mutual exclusion refers to the ...

兔之
2014/01/03
0
0
RTX-TINY AND C51工具链相关

1. RTX51 TINY的信号是异步使用,如中断发信号,但是只有一种信号,反正就是等待信号和收到信号。信号不再继续分类。但是linux的信号同是异步使用,但是信号有很多种,如KILL信号等等。 2. 信...

yueqian_scut
03/22
0
0
如何在Linux上禁止任何人使用su命令成为root

如何在Linux上禁止任何人使用su命令成为root Ronny 2018年5月2日暂无评论 阅读 4 次 导读 Linux以它的高效性和灵活性著称,Linux模块化的设计结构,使得它既能在价格昂贵的工作站上运行,也能...

Ronny
05/02
0
0
Spring quartz定时器动态多任务实现

项目中经常会碰到需要定时执行的任务,并且需要执行什么任务,以及任务执行的时间都由用户自定义的需求。quartz是比较常用的定时器工具,并且在spring框架中也已经做了很好的集成,所以在以s...

凯文加内特
2015/06/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 快捷键

快捷键图标。 官方的下载地址为:https://atlassianblog.wpengine.com/wp-content/uploads/2018/01/keyboard-shortcuts-infographics.pdf...

honeymose
今天
2
0
Apache限定目录解析PHP,限制user_agent,PHP相关的配置

Apache限定目录解析PHP 配置前访问upload/index.php [root@test-a ~]# curl -x192.168.77.139:80 'www.test.com/upload/index.php'This is upload diretory 配置,/usr/local/apache2.4/......

野雪球
今天
3
0
java.util.Concurrent.Exchanger源码

类图 源码: package java.util.concurrent;import java.util.concurrent.atomic.AtomicInteger;import java.util.concurrent.atomic.AtomicReference;import java.util.concurrent......

狼王黄师傅
今天
6
0
Kubernetes里的secret最基本的用法

Secret解决了密码、token、密钥等敏感数据的配置问题,使用Secret可以避免把这些敏感数据以明文的形式暴露到镜像或者Pod Spec中。 Secret可以以Volume或者环境变量的方式使用。 使用如下命令...

JerryWang_SAP
昨天
5
0
2018-11-20学习笔记

1. python数据类型: 给变量赋值什么样的值,变量就是什么样的类型 给变量赋值整数,变量就是整数类型 给变量赋值字符串,变量就是字符串类型 123 和“123”一样吗? 在python中 单引号 与双...

laoba
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部