计算机基础知识02
进程 线程 纤程 中断
面试高频:进程和线程有什么区别?
答案:进程就是一个程序运行起来的状态,线程是一个进程中的不同的执行路径。专业:进程是OS分配资源的基本单位,线程是执行调度的基本单位。分配资源最重要的是:独立的内存空间,线程调度执行(线程共享进程的内存空间,没有自己独立的内存空间)
纤程(Fiber):用户态的线程,线程中的线程,切换和调度不需要经过OS(Linux:线程中的线程,在linux系统中,进程申请一个普通进程,需要向操作系统申请,在普通进程中创建纤程,这个纤程不需要向操作系统申请,是普通进程中的进程,纤程对应用户空间,没有涉及到系统空间,纤程调度是在普通进程中完成的,不需要操作系统进行调度;)
利用Quaser [ˈkweɪzɑː(r)] 库 来实现纤程;
优势:1:占有资源很少 OS : 线程1M Fiber:4K 2:切换比较简单 3:启动很多个10W+
在linux系统中,线程也是一个进程,在一个进程中调用系统函数fork(),操作系统会在当前进程中创建一个子进程,相当于线程,不过linux不交线程叫进程,这个进程涉及系统调用,用户态到内核态然后在回到用户态,需要向操作系统申请然后操作系统返回一个进程;
线程切换耗时,因为每个线程在cpu内部都有它的寄存器与计数器,切换线程需要把当先线程的信息保存起来,然后另一个线程进入cpu执行,如果线程多了来回切换就很耗费时间,也叫做线程上下文切换context;
进程描述符,没一个进程都有一个进程描述符,操作系统根据进程描述符来维护进程
进程调度
2.6采用CFS调度策略:Completely Fair Scheduler
按优先级分配时间片的比例,记录每个进程的执行时间,如果有一个进程执行时间不到他应该分配的比例,优先执行
默认调度策略:
实时 (急诊) 优先级分高低 - FIFO (First In First Out),优先级一样 - RR(Round Robin)普通: CFS
中断
硬件跟操作系统内核交互的一种机制
软中断(80中断) == 系统调用
系统调用:int 0x80 或者 sysenter原语
通过ax寄存器填入调用号
参数通过bx cx dx si di传入内核
返回值通过ax返回
java读网络 – jvm read() – c库read() - >
内核空间 -> system_call() (系统调用处理程序)
-> sys_read()
以上是 计算机基础知识02 的全部内容, 来源链接: utcz.com/z/518170.html