os -- 22




1 2 3

200x200


引言你是否也和我一样,想要知道当我们轻轻按下电源键,电脑哔的一声响,几行字闪过,然后操作系统的启动画面出现,电脑启动可以被使用,这一系列过程中,电脑到底做了什么呢? 计算机最初的加电启动电

#操作系统    #os    #system    #nasm   

200x200


引言前面的文章中,我们介绍了 python 中的进程与线程模型我们看到,由于 GIL 锁的存在,python 中的线程效率并不高,也不能利用多核&nb

#操作系统    #os    #进程    #线程   

200x200


文件系统布局文件系统被存放在磁盘上,磁盘一般都会被划分为一个或多个分区,每个分区中会存放一个独立的文件系统磁盘的0号扇区称为“主引导记录”(MBR),用来引导计算机,MBR的结尾是分区表,该表给出每个

#技术帖    #操作系统    #os    #linux   

200x200


图示 磁盘存储如图所示,系统由 MBR(主引导区)引导启动,载入分区表,加载 VFS,文件系统开始进入工作状态每个分区维护自己的超级块,用于描述文件系统类型等的关键参数空

#技术帖    #操作系统    #os    #龙潭书斋   
概念所谓的死锁,就是两个或两个以上的进程在执行过程中,因为争夺某个资源而造成的相互等待的现象,如果没有外力作用,则他们都会因为等待而无法继续执行,死锁有时也称为“抱死”死锁的条件死锁的发生必须具备以下四个条件:互斥条件 -- 进程对分配到的资源进行排他性使用,即在一段时间内,某资源只能由一个进程占用,其他需要使用该资源的进程则必须等待请求和保持条件 -- 进程已经占用了某个排他性资源,但又提出了新的资源请求,而该资源又被其他进程占用,因此,此时执行进程阻塞,但又不释放自己已持有的资源不剥夺条件 -- 进程已获得资源在未使用完之前,不能被剥夺,只能在使用完之后由自己释放环路等待条件 -- 即P0正在等待P1占用的资源;P1正在等待P2占用的资源。。。Pn正在等待P0占用的资源,形成资源的环形链 
#读书笔记    #技术帖    #操作系统    #os   
概念典型的UNIX进程可以看做只有一个控制线程,即一个进程同一时刻只做一件事如果进程拥有多个控制线程,则在同一时刻各个线程可以处理各自独立的任务优势简化编程多进程实现内存和文件描述符共享需要使用操作系统提供的复杂机制,而多个线程则自动的共享地址空间和描述符有些问题中将问题分解可以有效改善程序的吞吐量多线程可以将交互与其他部分分开,有效利用等待的时间片进程包含了表示进程内执行环境的必要信息,其中包含进程中线程的线程ID、一组寄存器的值、栈、调度优先级和策略、信号屏蔽字、errno变量以及线程私有数据,进程的所有信息对所有线程都是共享的,包括程序文本、全局内存和堆内存、栈以及文件描述符线程标识与相关函数和每个进程都有一个进程ID一样,每个线程也有自己的唯一标识,系统中的每个进程的ID都是不同的,同一进程中的线程ID也是不同的,但是不同进程的线程ID可能相同进程使用一个整数作为ID(pid_t类型),而线程则使用一个结构体 pthread_t 类型作为 ID 比较两个线程IDint pthread_equal(pthread_t tid1, pthread_t tid2); 定义于 pthread.h 中若参数中的两个线程ID相同则返回非0值,否则返回0 获取自身的线程IDpthread_t pthread_
#读书笔记    #操作系统    #os    #linux   
概述最近一直在看《现代操作系统》这本书,此前对操作系统只是有一个基本的认识,在笔试面试中吃过不少亏,所以觉得这方面的欠缺的知识亟待去补充,于是开始了这本书的研读现在刚刚读完线程这个部分,对线程、进程有了一些自己的认识,也不知道理解是不是准确 进程简单的说进程就是一个程序第一次执行,程序是储存在磁盘上的文本部分,载入内存开始执行后就是一个进程,进程是独占CPU等资源的,CPU可以在短时间内不停地切换进程来实现多进程并行执行的假象 线程由于人们日益增长的需要,只有进程的并行显得效率很低,而且各进程之间不能共享资源有时是无法完成某些工作的,因此,诞生了切换更加快速的“轻量级进程” -- 线程,一个进程可以有多个线程,和多进程并行执行的原理一样,通过不断切换实现多线程并行执行的假象,但是这个切换时间只有纳秒级,要比进程的并行执行效率高得多 多线程的好处传统的进程只有一个调用线程,指令顺序执行,这样一个进程在某一时刻只能选择做一件事,比如对于文件下载程序,如果没有多线程,那么下载进度条将无法与下载进度保持真正的一致,因为如果进程去更新进度条,那么就一定会阻塞下载,但是实现多线程后,每件事都可以让不同的线程来完成,这样实现了进程内的并行处理,如果每件事占用CPU运算的10%,多线程让CPU使用率提升到了30%当然,多线程也有很多诸如维护等方面的
#技术帖    #操作系统    #os    #技术分享   

200x200


进程是一个程序的一次执行,而一个进程中至少要有一个线程线程的划分尺度要小于进程,使得多线程程序的并发性很高,所以线程也被称为“轻量级进程”每个进程可以不同的用户创建,具有不能共享的资源,进而构成竞争关

#技术帖    #操作系统    #os    #技术分享   
UNIX提供给应用程序员以100多个系统调用,用以在用户态下完成进程管理、文件管理等需要提升至内核态的操作,而windows下,应用程序员不能直接使用系统调用,而需要借用操作系统提供的数千个WIN32 API来完成,每个API函数可以调用一个或多个系统调用也可以不调用任何系统调用,仅仅在用户态下完成操作,不同版本的相同API所调用的系统调用以及其调用方式也可能不同windows的数千个win32 API有大量用于管理视窗、几何图形、文本、字型、进度条等的GUI的相关功能,而UNIX中,GUI并不是系统的组成部分,所以UNIX提供的系统调用仅仅负责最基本的操作基于win32 API的编程一般是事件驱动的,即在主程序中等待某件事件的发生,然后调用相关的处理方法处理该事件,包括键盘敲击、鼠标移动等,之后更新内部程序状态,而UNIX中每一个程序会包括做各种处理的代码以及从事完成特定服务的系统调用进程创建:UNIX中使用系统调用fork通过复制父进程地址空间开辟子进程,而在windows中,没有子进程的概念,windows中使用CreateProcess这个API来完成fork和execve的功能,创建新的进程,之后新的进程与创建者失去关系,平等的进行操作windows不支持编程实现文件的链接、文件系统的安装、安全属性或信号,当然,windows也同样有大量UN
#技术帖    #操作系统    #os    #unix   

200x200


.sql_table p{ margin:0px; font-family:SimSun; } 文件时间每个文件都有三个时间字段: |--------------+----------------

#读书笔记    #技术帖    #操作系统    #os   
1 2 3



京ICP备15018585号