前言

最近有很多朋友向我求教经验,因为我自己工作相对于稳定,在这里给大家分享一个粉丝朋友的经历,他作为一个曾经的菜鸡面试者,在不断的失败中成长,最终斩获了多份offer,因此特别想在此分享一下他的面试成长之路。
文章内容篇幅较长,希望大家都能认真的看完,相信对你的帮助绝对不止一点半点!

首先和大家分享一下他这个面试季所斩获的所有offer:腾讯,美团,字节跳动,拼多多,华为,金山云,共6家公司,其中好几家给到可sp offer。最终入职了:字节跳动的「互动娱乐」部门成为了一名研发同学。

1 进程

进程与程序

操作系统之中最为通用的概念就是「进程」。与此相关的面试题以及各种技术优化策略也层出不穷,足以够证明它对于理解操作系统中举足轻重的地位。事实上,通过「进程」,程序员可以更为直观的理解自己所开发的软件,并且能够从中深刻的认识到操作系统在软件运行做了些什么。

简单来讲,进程就是正在执行的程序。每个进程都包含有属于自己的一段地址空间,可以看作是一部分内存空间。在这样的地址空间中,进程能够根据需要进行内存的读写。

地址空间里面一般包含可执行程序,以及对应程序的数据及其堆栈。与每个进程相关的还有一组资源,通常包括寄存器(包括程序计数器和堆栈指针)以及运行程序所需的所有其他信息。从这可以看出,程序本身只是指令、数据以及其组织形式的一种描述方式,而程序的实际的运行实例就是一个进程。

不过进程与程序也并不完全等同,他们不是简单的一一对应的关系,而是在不同层面的表现形式。他们的主要区别在于:

  • 程序是进程的静态文本,而进程是执行程序的动态过程;
  • 进程与程序不是一一对应,同一程序可在不同进程中运行,一个进程也可以执行多个程序;
  • 程序是一种长期可保存的文本,进程是暂时的一次执行过程;
  • 进程是操作系统分配调度的独立单位,而程序是操作系统层级之上的应用程序。

进程状态

从上面我们知道,进程可看作是程序运行的动态过程。那么为了更好的对进程进行描述,我们给运行中的进程定义了三种基本状态,包括就绪、执行和阻塞。

这就是所谓的三态模型,描述了进程在整个运行周期中状态变化。每个状态的转移过程可以通过下图来表示。

就绪状态 是指进程已经被分配到了所有必需的资源,除了CPU。在这个状态下,进程处于箭在弦上随时待发的状态,只要一获得CPU的执行权限,进程便会立刻执行,从而进入执行状态。

当有多个处于就绪状态的进程时,不同的进程会根据优先级被划分入不同的队列。一个因为时间片用完而进入就绪状态的进程会被划分入低优先级队列,而因为I/O操作完成而进入就绪状态的进程,则会被划分入高优先级队列。

执行状态 是指进程正常运行的状态。而当处于执行状态的进程由于需要等待某个事件发送(通常为等待I/O)时,就会放弃CPU,从而进入暂时的阻塞状态。CPU这时一旦空出,通过不同的调度算法,CPU又会被分配给另一个就绪进程。

阻塞状态 相当于就绪状态和执行状态的一个缓冲状态。当处于执行状态

从草根到百万年薪程序员的十年风雨之路,年薪50W相关推荐

  1. 从草根到百万年薪程序员的十年风雨之路,吊打面试官系列!

    开头 大家好,我是G哥,目前人在荆州办事,但是干货还是要安排上! 国外有一个爆火的开发人员学习路线,目前已经在 Github收获了 131 k+ star,Star 数量在 Github 所有仓库中排 ...

  2. 从草根到百万年薪程序员的十年风雨之路,使用指南

    前言 文章篇幅较长,建议耐心食用,相信对你有帮助.码字不易,如果有误,欢迎指出. 前部分是面试经历,后部分是附带的问题笔记/推荐回答/书籍. 我的微信小号有一组特殊的朋友.他们从 CSDN上看到我之前 ...

  3. 字节跳动面试:从草根到百万年薪程序员的十年风雨之路,成功收获美团,小米安卓offer

    程序员与别的专业有所不同,其他专业都是越老越香,而程序员却是一个例外,因为计算机技术更新太快,而且工作强度很大,因此大部分程序员只会写 3 年代码.3 年后要不晋升做项目经理,要么转行,个别研究所除外 ...

  4. 从草根到百万年薪程序员的十年风雨之路,醍醐灌顶!

    导语 回首向来萧瑟处,归去,也无风雨也无晴. 我一哥们也是做Java开发,暂且先叫他峰哥吧,到今年已经入行6年了,每天还是写一些业务代码,至今还是个单身狗,愁的头发真的都快谢顶了. 虽然峰哥每天做着C ...

  5. 安卓性能优化面试,从草根到百万年薪程序员的十年风雨之路

    前言 先简单交代一下背景吧,本人毕业于某不知名985的本硕,17年毕业加入阿里,今年下半年跳槽到了头条,一直从事后端研发相关的工作. 之前没有实习经历,算是两年半的工作经验吧.这两年半之间完成了一次晋 ...

  6. 从草根到百万年薪程序员的十年风雨之路,细节爆炸

    前言 过去十多年互联网产业的高速发展,在给社会带来深刻变革的同时,也催生了服务架构的演进:从传统的单体应用到面向服务的SOA,再到现今主流的微服务架构,而 Apache Dubbo就是微服务领域中的先 ...

  7. 涨知识!从草根到百万年薪程序员的十年风雨之路,搞懂这些直接来阿里入职

    前言 找工作还是需要大家不要紧张,有我们干这一行的接触人本来就不多 难免看到面试官会紧张,主要是因为怕面试官问的问题到不上来,那时候不要着急 ,答不上了的千万不然胡扯一些,直接就给面试官说这块我还没接 ...

  8. 从草根到百万年薪程序员的十年风雨之路,实战解析

    前言 当你准备跳槽面试的时候,明明只是一份15K的工作,却问你会不会多线程,懂不懂高并发,火箭造得让你猝及不防,结果就是两个字--凉凉!而在如今的市场,什么多线程.高并发.分布式.负载均衡.集群.微服 ...

  9. Android程序员的十大转型之路

    IT行业是一个瞬息万变的行业,程序员是一个不进则退的职业.我作为一个Android程序员,多年来一直保持随时可以转型其他技术领域的状态,保持对新技术敏感的嗅觉. 我先说说Android程序员不可能转型 ...

最新文章

  1. 新材料,比钢硬一倍,但重量只有钢1/6
  2. python列表中互换位置_如何在Python列表中切换两个项目的位置?
  3. tomcat 的安全规范
  4. 【Android源码剖析】(API 19)[View-----MeasureSpec]
  5. python基础学习[python编程从入门到实践读书笔记(连载一)]
  6. 【Android】7.1 布局控件常用的公共属性
  7. Ubuntu上 anaconda的卸载
  8. netty中的引导Bootstrap服务端
  9. 从0到1:微信后台系统的演进之路(转自INFOQ)
  10. 使用临时表关联数据时效率低的问题
  11. 【Express】—post传递参数
  12. 设计模式(15)——抽象工厂模式(Abstract Factory)
  13. c语言程序运行时可以从键盘上读入,C语言程序设计题库之
  14. Barrage 弹幕实现原理
  15. Turbo编码原理及基本概念
  16. ImageJ下载安装使用
  17. 北极科考:我们为什么要在北极呆上一年?
  18. colorbox去除close关闭按钮,附上colorbox的基本使用方法
  19. 怎么在小程序中使用彩色图标iconfont
  20. android手机壁纸

热门文章

  1. c语言趣味程序设计过桥,计算机c语言趣味的程序设计——题目百例.doc
  2. C/C++文件IO输入输出操作——FILE*、fstream、windowsAPI
  3. 利用sys schema解决一次诡异的语句hang问题
  4. [C语言]0、‘0‘、‘\0‘、“0“的区分
  5. Tensorflow-gpu+Cuda+cuDNN安装(详细且包含失败解决教程)
  6. 计算机英语四级证书编号查询,英语四级99宿舍网查准考证号
  7. SQL server截取日期,只要年月
  8. 软件设计师知识点小总结(自己适用)
  9. PHP对接阿里大鱼实现短信的发送
  10. RemoteView在什么地方用