当前位置: 首页 > wzjs >正文

网站做seo多少钱松岗网站

网站做seo多少钱,松岗网站,wordpress cherish,新加坡vps目录 线程概念 线程优点 线程缺点 分页式存储管理 虚拟地址和分页 多级页表思想 页目录结构 缺页异常 线程控制 线程创建 线程终止 线程等待 线程分离 线程概念 在一个程序里的一个执行路线就叫做线程 线程是“一个进程内部的控制序列” 一切进程都至少有一…

目录

线程概念

线程优点

线程缺点

分页式存储管理

虚拟地址和分页 

多级页表思想

页目录结构 

缺页异常 

线程控制

线程创建

线程终止

线程等待

线程分离


线程概念

在一个程序里的一个执行路线就叫做线程

线程是“一个进程内部的控制序列”

一切进程都至少有一个执行线程

线程在进程内部运行,本质是在进程地址空间内运行

透过进程虚拟地址空间,可以看到进程的大部分资源,将进程资源合理的分配给每个执行流,就形成了线程执行流

在Linux下线程也叫轻量级进程

进程是资源分配的基本单位

线程是调度的基本单位

线程共享进程数据,但也拥有自己的一部分数据:

  • 线程ID
  • 一组寄存器
  • errno
  • 信号屏蔽字
  • 调度优先级

线程优点

  • 创建一个新线程比创建一个新进程的代价要小得多
  • 与进程之间的切换相比,线程之间的切换需要操作系统做的工作要小得多(1.线程切换虚拟地址空间仍然是相同的,进程的切换是不同的。2.上下文的切换会扰乱处理器的缓存机制)
  • 线程占用的资源要比进程少得多
  • 能充分利用多处理器的可并行数量
  • 在等待慢速I/O操作结束的同时,程序可进行其他的计算任务
  • 计算密集型应用,为了能在多处理器系统上运行,将计算分解到多个线程中实现。
  • I/O密集型应用,为了提高性能,将I/O操作重叠。线程可以同时等待不同的I/O操作。

线程缺点

  • 性能损失(这里的性能损失指的是增加了额外的同步和调度开销,而可用的资源不变)
  • 健壮性降低(线程之间是缺乏保护的)
  • 缺乏访问控制(在一个线程中调用某些OS函数会对整个进程造成影响)
  • 编程难度提高(编写与调试一个多线程程序比单线程程序困难得多)

分页式存储管理

虚拟地址和分页 

若是没有虚拟地址和分页机制的情况下,每一个用户程序在物理内存上对应的空间必须是连续的 

这样的话,经过一段时间的运行,有的程序就会退出,它所占据的物理内存空间会被回收,这样就导致了这些物理内存很多都是以碎片的形式存在

我们希望操作系统提供给用户的空间必须是连续的,但是物理内存最好不要连续,所以就需要虚拟地址和分页了 

把物理内存按照一个固定长度的页框进行分割,有时叫做物理页

一个页的大小等于页框的大小

32位体系结构支持4kb的页,64位体系结构支持8kb的页

  • 页框是一个存储区域
  • 页是一个数据块,可以存放在任何页框或磁盘中 

其思想是将虚拟地址下的逻辑地址空间分成若干页,将物理内存空间分成若干页框,通过页表就能把连续的虚拟内存映射到若干个不连续的物理内存页。这样就解决了使用连续物理内存造成碎片的问题 

多级页表思想

在32位系统中,虚拟内存的最大空间是4GB,这是每一个用户程序都拥有的虚拟地址空间。要让这4GB全都可用都能表示出来,那么就需要4GB / 4KB = 1048576个表项

在32位系统中,地址的长度是4字节的,那么页表的每一个表项就需要占用4个字节,所以页表占据的总空间大小就是1048576*4 = 4MB的大小

也就是说光是映射页表本身就需要4MB / 4KB = 1024个物理页。使用页表不就是为了解决物理内存可以不用连续存放的问题吗,但如今却需要连续存放了,由此就产生了多级页表的思想

把页表看成普通文件,对它进行离散分配,即对页表再分页

可以把单一页表拆分成1024个体积更小的映射表,这样一来1024(表的表项个数) * 1024(表的个数) = 4GB仍然能覆盖4GB的物理内存空间 

一个应用程序是不可能完全使用全部的4GB空间的,这样就可以让我们只需要部分的页表就能够让一个进程正常运行了

页目录结构 

每一个页框都被一个页表中的表项来指向了,那么这个1024个页表也需要被管理起来。

管理页表的表称为页目录表,形成二级页表 

页目录的物理地址被CR3寄存器指向,这个寄存器会保存当前正在执行任务的页目录的地址

缺页异常 

若是有了虚拟地址,在页表中没有找到对应的物理地址怎么办?这就是缺页异常Page Fault

它是一个由硬件中断触发的可以由软件逻辑纠正的错误

这样CPU就无法获取数据,用户进程也就出现了缺页中断,进程会从用户态切换到内核态,并将缺页中断交给内核的Page Fault Handler处理

缺页中断会交给Page Fault Handler处理,其根据缺页中断的不同类型会进行不同的处理:

  • Hard Page Fault 也被称为 Major Page Fault,翻译为硬缺页错误/主要缺页错误,这时物理内存中没有对应的物理页,需要 CPU 打开磁盘设备读取到物理内存中,再让 MMU 建立虚拟地址和物理地址的映射。
  • Soft Page Fault 也被称为 Minor Page Fault,翻译为软缺页错误/次要缺页错误,这时物理内存中是存在对应物理页的,只不过可能是其他进程调入的,发出缺页异常的进程不知道而已,此时 MMU 只需要建立映射即可,无需从磁盘读取写入内存,一般出现在多进程共享内存区域。
  • Invalid Page Fault 翻译为无效缺页错误,比如进程访问的内存地址越界访问,又比如对空指针解引用,内核就会报 segment fault 错误中断进程直接挂掉。

线程控制

要使用线程相关的函数,需要我们引入线程库的头文件

#include <pthread.h>

链接这些线程函数库时要使用编译器命令的“-lpthread”选项 

线程创建

创建一个新线程 

int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *
(*start_routine)(void*), void *arg);

thread:返回线程ID

attr:设置线程的属性,attr为NULL表示使用默认属性

start_routine:是个函数地址,线程启动后要执行的函数

arg:传给线程启动函数的参数

返回值

成功:返回0

失败:返回错误码


我们也可以获取当前线程的ID 

pthread_t pthread_self(void);

线程终止

终止调用它的线程

void pthread_exit(void *value_ptr);

value_ptr线程退出时的返回值


取消⼀个执⾏中的线程 

int pthread_cancel(pthread_t thread);

thread:目标线程的线程 ID,指定要取消的线程

返回值

成功:返回0

失败:返回错误码

线程等待

用于等待一个线程终止,并获取它的退出状态 

int pthread_join(pthread_t thread, void** retval);

thread:要等待的线程的线程 ID

retval:用于存储被等待线程的退出状态。如果线程是通过pthread_exit退出的,retval会指向线程返回的值。如果不需要获取返回值,可以将retval设置为NULL。

返回值

成功:返回0

失败:返回错误码

线程分离

用于将线程设置为分离状态。分离状态的线程在终止时会自动释放其占用的资源,而不需要其他线程通过pthread_join来回收资源 

int pthread_detach(pthread_t thread);

thread:要分离的线程的线程 ID

返回值

成功:返回0

失败:返回错误码


完 


文章转载自:

http://XC56FCTP.rcwbc.cn
http://4T99zCEL.rcwbc.cn
http://op2AmVuT.rcwbc.cn
http://dcJcmbRU.rcwbc.cn
http://k7JYWXTj.rcwbc.cn
http://SLzuJtVM.rcwbc.cn
http://48Bo62tG.rcwbc.cn
http://KJNjKSi1.rcwbc.cn
http://Hs6Wb3YZ.rcwbc.cn
http://ihsrB8cl.rcwbc.cn
http://0hyYdmDQ.rcwbc.cn
http://1DQxrBTI.rcwbc.cn
http://72tSjre5.rcwbc.cn
http://IxIyn7By.rcwbc.cn
http://PjezPsoJ.rcwbc.cn
http://afJDQt49.rcwbc.cn
http://Dj8RgELZ.rcwbc.cn
http://Y3rKmVGf.rcwbc.cn
http://FnMfGAsW.rcwbc.cn
http://L6eppFEs.rcwbc.cn
http://XDN9iNBY.rcwbc.cn
http://I3JsQ5hA.rcwbc.cn
http://Af4aYWg8.rcwbc.cn
http://ah4LsCIb.rcwbc.cn
http://DZ244lpv.rcwbc.cn
http://NWM0vFt7.rcwbc.cn
http://G8QyUWuz.rcwbc.cn
http://aC1yKJt7.rcwbc.cn
http://XRDe57D0.rcwbc.cn
http://cku4l8V7.rcwbc.cn
http://www.dtcms.com/wzjs/676743.html

相关文章:

  • 教育类php开源网站网站建设前端需要看什么书
  • 深圳住房城乡建设局网站网站建设类岗位有哪些
  • php网站建设制作方案合伙做网站
  • 土特产网站模板怎样用电脑和网訨自己做网站
  • 如何来做网站优化网站域名年费多少钱
  • 网站的建设需要虚拟机吗市场监督管理局职责范围
  • 做网站的文章中国建设网站的证件怎么查询
  • 软件工程师的工作内容网站推广优化技巧
  • 网站建设 实施计划书灰色系网站
  • 宁晋网站建设内江建网站
  • wordpress整站主题荆州seo推广
  • 宝安官网网站建设比较好的莱芜民生广角
  • 网站建设怎样做好wordpress codeus
  • 如何查询网站已经提交备案博客网站主页代码html
  • 怎么做查成绩网站石家庄网站制作工具
  • 网站毕业设计怎么做wordpress 关联
  • 医学分类手机网站模版网站 技术
  • 做网站怎么写预算哪些平台可以建立网站
  • 建站63年来第一次闭站 北京站辟谣wordpress主导航菜单
  • h5游戏大厅保定seo建站
  • 网站建设问卷调查表做360手机网站快速排名软件
  • 大连做网站外包响水网站建设服务商
  • 如何做网站连接阀门行业网站怎么做
  • word用来做网站的招聘网站建设销售
  • 企业网站建站 优帮云做的网站浏览的越多越挣钱
  • 网站空间商汽车网站模板
  • 江门网站制作设计提升网站访问量
  • pythom 网站开发规范html5 php 网站源码
  • 山东省城乡建设厅网站网站备案查询官网入口查询
  • 企业 网站建设网页设计与网站建设在线作业答案