The current state of Edge Computing

I'm always have an eye on what's edge computing's going on because I'm a fan in IoT. Honestly, I start doing my CS major with IoT projects though it was very dump.(listed is not my first dump project hhhhh)

I prepared to do sth in SHIFT, also congratulations to Prof. Yang's recent publication:
Multi-tier computing networks for intelligent IoT. But the S3L first respond to me, So I'm a security guy right now.

I've been upon thinking the idea for a while, the idea of the problem is very similar to the state of art key problems.

1. Computing power: data processing equipment is no longer a rack server, how to ensure that the performance meets the requirements

2. Power consumption: power consumption cannot be as large as the level that ordinary civil power is difficult to accept, and power consumption also means that the heat is large

3. Stability: deployment outside causes the difficulty of field maintenance to increase dramatically The improvement of stability also means the reduction of maintenance cost, which also includes the harsh environment on the user side, such as high temperature, humidity, corrosive gas, etc.

4. Cost: only the cost can cover the demand, can we deploy and meet the customer demand as much as possible, if the cost is not comparable to the network + data center, it is meaningless

Moore's law has met with a bottleneck. It is more and more difficult to make the best of both general and specific optimizations. At this time, the hardware coprocessor which integrates common AI algorithms directly in edge computing becomes the key to obtain high performance and low power consumption. A key threshold for power consumption is 6W TDP. Generally, in the design, the power consumption of the chip is less than 6W, and the fan can not be used with the heat sink. The absence of fans not only means the reduction of noise, but also means that the stability and maintainability are not affected by fan damage. In the front-end chip of edge computing class, horizon based on its self-developed computer architecture BPU has found a new balance point in various requirements. The equivalent calculation power of 4 tops provided by it has reached the calculation power of the top GPU two years ago, while the typical power consumption is only 2W, which means that not only fans are not needed, but also the whole machine can be installed in the metal case to avoid dust and corrosion caused by redundant holes.

When it comes to computing power, there is a big misunderstanding in the current industry, which often takes the peak computing power as the main index to measure the AI chip. But what we really need is the effective computing power and the algorithm performance of its output. This needs to be measured from four dimensions: the peak computing power per watt and the peak computing power per dollar (determined by chip architecture, front and rear end design and chip technology), the effective utilization rate of peak computing power (determined by algorithm and chip architecture), and the ratio of effective computing power to AI performance (mainly in terms of speed and precision, determined by algorithm). RESNET was widely used in the industry before, but today we use a smaller model with more sophisticated design like mobilenet, which can achieve the same accuracy and speed with 1 / 10 of the calculation force. However, these ingenious design algorithms bring huge challenges to the computing architecture, which often make the effective utilization rate of the traditional design of the computing architecture greatly reduced, and from the perspective of the final AI performance, even more than worth the loss. The biggest feature of horizon is to predict the development trend of key algorithms in important application scenarios, and to integrate its computing features into the design of computing architecture prospectively, so that the AI processor can still adapt to the latest mainstream algorithm after one or two years of research and development. Therefore, compared with other typical AI processors, horizon's AI processor, along with the evolution trend of the algorithm, has always been able to maintain a fairly high effective utilization rate, so as to truly benefit from the advantages brought by algorithm innovation. Horizon also optimizes the compiler's instruction sequence. After optimization, the peak effective rights are increased by 85%. This makes the processing speed of the chip increased by 2.5 times, or the power consumption reduced to 40% when processing the same number of tasks. Another feature of horizon BPU is that it can be better integrated with sensors in the field. Video often requires huge bandwidth. 1080p @ 30fps video has a bandwidth of 1.5gbit/s from camera to chip. And horizon BPU can complete the video input, field target detection, tracking and recognition at the same time, so that all necessary work can be completed on site. Both the journey series applied to intelligent driving and the sunrise series applied to the intelligent Internet of things can easily cope with the huge bandwidth and processing capacity of the scene. More importantly, the common AI calculation can be completed in 30ms. It makes the applications that are extremely sensitive to time delay become reality gradually, such as automatic driving, recognition of lane lines, pedestrians, vehicles, obstacles and so on. If the time delay is too large or unpredictable, it will cause accidents.

However, by using sunrise BPU, AI calculation can be completed within predictable time delay, which can make the development of automatic driving more convenient. The application of edge computing has been limited by the performance of computing, the strict limitation of sensors and power consumption since it was put forward, and the development of edge computing is slow. And horizon BPU series chips, seeking a new balance in function and performance, can also effectively help edge computing applications to be more easily deployed to the site, so that all kinds of Internet of things applications can more effectively serve everyone.

credit: https://www.zhihu.com/question/274787680

Distributed Learning

Credit

self learnt from https://www.csie.nuk.edu.tw/~wuch/course/csd511/csd511-08.pdf

Intro

After viewing much of the ppt online, I grabbed that most of the US schools focus on practice. Maybe because the ppt is for Microsoft intern. Actually, the Sun and the Andrew has been the history.

First off, many kinds. and all of them is to make online repositories browsed just as offline. like ftp on linux r samba on windows.

basic Architechture

The architecture is the webserver one that is response and response. I'd say it's more r less a application layer thing, all the mapping connects to other api. In ufid part, it's stateless and a server end fd.

Implementation

The connection contract is based on RPC which requires:

This is the remote procedure call interface to extend the local directory services to a distributed model.

Every operations would not be directly modified, all requires a tcp requiest, so the identifier requires a 32bits and 16bits date for time stamp. After being transfered, all operations are similar to local ones. Take Sun NFS systems as instance.

NFS & VFS

VFS do it more direct, I would say. It put the Hardware abstraction more abstract based on network architechture. Vnode rather than Inode( a file saving DS). In pintos is like:

Source: CSCI350: pintos guide

while VFS works this way

Summary

Other OS operations works just do as the file system based on network.

optimization: UDP packet is extended to 9KB to containing entire file block (8KB for UNIX BSD FFS) and RPC message in a single packet – Clients and servers of NFSv3 can negotiate sizes larger than 8 KB.

Another file systrm : Andrew File System

The Andrew File System (AFS)[1] is a distributed file system which uses a set of trusted servers to present a homogeneous, location-transparent file name space to all the client workstations. It was developed by Carnegie Mellon University as part of the Andrew Project.

Goal: provide transparent access to remote shared files

Two unusual design characteristics

Other improvement

further study

狗屁不通生成器使用

网页查看(虽然有点bug)



文章生成器



文章生成器
主题

  既然如何, 池田大作在不经意间这样说过,不要回避苦恼和困难,挺起身来向它挑战,进而克服它。带着这句话,我们还要更加慎重的审视这个问题: 要想清楚,一天掉多少根头发,到底是一种怎么样的存在。 问题的关键究竟为何? 一天掉多少根头发的发生,到底需要如何做到,不一天掉多少根头发的发生,又会如何产生。 一般来说, 池田大作曾经说过,不要回避苦恼和困难,挺起身来向它挑战,进而克服它。带着这句话,我们还要更加慎重的审视这个问题: 拉罗什夫科说过一句著名的话,取得成就时坚持不懈,要比遭到失败时顽强不屈更重要。这不禁令我深思。 要想清楚,一天掉多少根头发,到底是一种怎么样的存在。 培根曾经提到过,要知道对好事的称颂过于夸大,也会招来人们的反感轻蔑和嫉妒。我希望诸位也能好好地体会这句话。 这种事实对本人来说意义重大,相信对这个世界也是有一定意义的。 一天掉多少根头发的发生,到底需要如何做到,不一天掉多少根头发的发生,又会如何产生。 了解清楚一天掉多少根头发到底是一种怎么样的存在,是解决一切问题的关键。 从这个角度来看, 一天掉多少根头发的发生,到底需要如何做到,不一天掉多少根头发的发生,又会如何产生。 要想清楚,一天掉多少根头发,到底是一种怎么样的存在。 每个人都不得不面对这些问题。 在面对这种问题时, 可是,即使是这样,一天掉多少根头发的出现仍然代表了一定的意义。 就我个人来说,一天掉多少根头发对我的意义,不能不说非常重大。 每个人都不得不面对这些问题。 在面对这种问题时, 一天掉多少根头发,到底应该如何实现。 一般来说, 我们不得不面对一个非常尴尬的事实,那就是, 我们不得不面对一个非常尴尬的事实,那就是, 我认为, 一天掉多少根头发,发生了会如何,不发生又会如何。 一天掉多少根头发的发生,到底需要如何做到,不一天掉多少根头发的发生,又会如何产生。 要想清楚,一天掉多少根头发,到底是一种怎么样的存在。 既然如此。
  经过上述讨论, 现在,解决一天掉多少根头发的问题,是非常非常重要的。 所以, 现在,解决一天掉多少根头发的问题,是非常非常重要的。 所以, 总结的来说, 经过上述讨论, 了解清楚一天掉多少根头发到底是一种怎么样的存在,是解决一切问题的关键。 我们都知道,只要有意义,那么就必须慎重考虑。 一般来说, 德国说过一句著名的话,只有在人群中间,才能认识自己。我希望诸位也能好好地体会这句话。 要想清楚,一天掉多少根头发,到底是一种怎么样的存在。 一般来说, 要想清楚,一天掉多少根头发,到底是一种怎么样的存在。 富兰克林曾说过这样一句话,读书是易事,思索是难事,但两者缺一,便全无用处。这似乎解答了我的疑惑。 本人也是经过了深思熟虑,在每个日日夜夜思考这个问题。 就我个人来说,一天掉多少根头发对我的意义,不能不说非常重大。 所谓一天掉多少根头发,关键是一天掉多少根头发需要如何写。 这种事实对本人来说意义重大,相信对这个世界也是有一定意义的。 既然如何, 那么。
  既然如此, 可是,即使是这样,一天掉多少根头发的出现仍然代表了一定的意义。 我们不得不面对一个非常尴尬的事实,那就是, 现在,解决一天掉多少根头发的问题,是非常非常重要的。 所以, 既然如何, 我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。 经过上述讨论, 拉罗什福科说过一句富有哲理的话,我们唯一不会改正的缺点是软弱。这不禁令我深思。 歌德曾经提到过,决定一个人的一生,以及整个命运的,只是一瞬之间。这不禁令我深思。 了解清楚一天掉多少根头发到底是一种怎么样的存在,是解决一切问题的关键。 而这些并不是完全重要,更加重要的问题是。
  苏轼曾经说过,古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。这启发了我, 这样看来, 生活中,若一天掉多少根头发出现了,我们就不得不考虑它出现了的事实。 一天掉多少根头发,发生了会如何,不发生又会如何。 亚伯拉罕·林肯曾经提到过,我这个人走得很慢,但是我从不后退。这似乎解答了我的疑惑。 一天掉多少根头发,到底应该如何实现。 既然如何, 爱尔兰曾经提到过,越是无能的人,越喜欢挑剔别人的错儿。我希望诸位也能好好地体会这句话。 现在,解决一天掉多少根头发的问题,是非常非常重要的。 所以, 我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。 那么, 就我个人来说,一天掉多少根头发对我的意义,不能不说非常重大。 每个人都不得不面对这些问题。 在面对这种问题时, 我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。 生活中,若一天掉多少根头发出现了,我们就不得不考虑它出现了的事实。 可是,即使是这样,一天掉多少根头发的出现仍然代表了一定的意义。 每个人都不得不面对这些问题。 在面对这种问题时, 一天掉多少根头发因何而发生? 韩非在不经意间这样说过,内外相应,言行相称。这启发了我, 经过上述讨论, 可是,即使是这样,一天掉多少根头发的出现仍然代表了一定的意义。 一天掉多少根头发,发生了会如何,不发生又会如何。 了解清楚一天掉多少根头发到底是一种怎么样的存在,是解决一切问题的关键。 拉罗什福科曾说过这样一句话,我们唯一不会改正的缺点是软弱。这句话语虽然很短,但令我浮想联翩。 一天掉多少根头发的发生,到底需要如何做到,不一天掉多少根头发的发生,又会如何产生。 冯学峰曾经提到过,当一个人用工作去迎接光明,光明很快就会来照耀着他。这句话语虽然很短,但令我浮想联翩。 在这种困难的抉择下,本人思来想去,寝食难安。 了解清楚一天掉多少根头发到底是一种怎么样的存在,是解决一切问题的关键。 一天掉多少根头发的发生,到底需要如何做到,不一天掉多少根头发的发生,又会如何产生。 莎士比亚说过一句富有哲理的话,人的一生是短的,但如果卑劣地过这一生,就太长了。我希望诸位也能好好地体会这句话。 总结的来说, 既然如此, 要想清楚,一天掉多少根头发,到底是一种怎么样的存在。 布尔沃说过一句富有哲理的话,要掌握书,莫被书掌握;要为生而读,莫为读而生。带着这句话,我们还要更加慎重的审视这个问题: 杰纳勒尔·乔治·S·巴顿在不经意间这样说过,接受挑战,就可以享受胜利的喜悦。带着这句话,我们还要更加慎重的审视这个问题: 经过上述讨论, 一天掉多少根头发因何而发生? 一般来讲,我们都必须务必慎重的考虑考虑。 要想清楚,一天掉多少根头发,到底是一种怎么样的存在。 德国曾经提到过,只有在人群中间,才能认识自己。这启发了我, 阿卜·日·法拉兹说过一句富有哲理的话,学问是异常珍贵的东西,从任何源泉吸收都不可耻。这句话语虽然很短,但令我浮想联翩。 我们不得不面对一个非常尴尬的事实,那就是, 既然如此, 从这个角度来看, 既然如何。
  既然如此, 所谓一天掉多少根头发,关键是一天掉多少根头发需要如何写。 带着这些问题,我们来审视一下一天掉多少根头发。 孔子曾说过这样一句话,知之者不如好之者,好之者不如乐之者。这句话语虽然很短,但令我浮想联翩。 拉罗什夫科说过一句著名的话,取得成就时坚持不懈,要比遭到失败时顽强不屈更重要。这不禁令我深思。 一般来讲,我们都必须务必慎重的考虑考虑。 总结的来说, 老子曾说过这样一句话,知人者智,自知者明。胜人者有力,自胜者强。这不禁令我深思。 一般来讲,我们都必须务必慎重的考虑考虑。 问题的关键究竟为何? 一般来讲,我们都必须务必慎重的考虑考虑。
  可是,即使是这样,一天掉多少根头发的出现仍然代表了一定的意义。 生活中,若一天掉多少根头发出现了,我们就不得不考虑它出现了的事实。 这种事实对本人来说意义重大,相信对这个世界也是有一定意义的。 既然如何, 歌德说过一句著名的话,意志坚强的人能把世界放在手中像泥块一样任意揉捏。这不禁令我深思。 而这些并不是完全重要,更加重要的问题是, 爱迪生曾说过这样一句话,失败也是我需要的,它和成功对我一样有价值。这启发了我, 我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。 带着这些问题,我们来审视一下一天掉多少根头发。 笛卡儿在不经意间这样说过,读一切好书,就是和许多高尚的人谈话。这启发了我, 德国曾经说过,只有在人群中间,才能认识自己。这似乎解答了我的疑惑。 现在,解决一天掉多少根头发的问题,是非常非常重要的。 所以, 本人也是经过了深思熟虑,在每个日日夜夜思考这个问题。 达尔文曾说过这样一句话,敢于浪费哪怕一个钟头时间的人,说明他还不懂得珍惜生命的全部价值。这不禁令我深思。 莎士比亚曾说过这样一句话,抛弃时间的人,时间也抛弃他。我希望诸位也能好好地体会这句话。 就我个人来说,一天掉多少根头发对我的意义,不能不说非常重大。 本人也是经过了深思熟虑,在每个日日夜夜思考这个问题。 裴斯泰洛齐曾经提到过,今天应做的事没有做,明天再早也是耽误了。这不禁令我深思。 一天掉多少根头发,发生了会如何,不发生又会如何。 总结的来说, 可是,即使是这样,一天掉多少根头发的出现仍然代表了一定的意义。 我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。 经过上述讨论, 每个人都不得不面对这些问题。 在面对这种问题时, 问题的关键究竟为何? 一般来说, 一般来说, 海贝尔曾说过这样一句话,人生就是学校。在那里,与其说好的教师是幸福,不如说好的教师是不幸。这启发了我, 我们不得不面对一个非常尴尬的事实,那就是, 可是,即使是这样,一天掉多少根头发的出现仍然代表了一定的意义。 要想清楚,一天掉多少根头发,到底是一种怎么样的存在。 所谓一天掉多少根头发,关键是一天掉多少根头发需要如何写。 史美尔斯说过一句富有哲理的话,书籍把我们引入最美好的社会,使我们认识各个时代的伟大智者。这句话语虽然很短,但令我浮想联翩。 从这个角度来看, 对我个人而言,一天掉多少根头发不仅仅是一个重大的事件,还可能会改变我的人生。
  老子在不经意间这样说过,知人者智,自知者明。胜人者有力,自胜者强。这启发了我, 本人也是经过了深思熟虑,在每个日日夜夜思考这个问题。 本人也是经过了深思熟虑,在每个日日夜夜思考这个问题。 了解清楚一天掉多少根头发到底是一种怎么样的存在,是解决一切问题的关键。 从这个角度来看, 苏轼在不经意间这样说过,古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。我希望诸位也能好好地体会这句话。 我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。 就我个人来说,一天掉多少根头发对我的意义,不能不说非常重大。 了解清楚一天掉多少根头发到底是一种怎么样的存在,是解决一切问题的关键。 既然如此, 这样看来, 一般来讲,我们都必须务必慎重的考虑考虑。 要想清楚,一天掉多少根头发,到底是一种怎么样的存在。 我们不得不面对一个非常尴尬的事实,那就是, 一天掉多少根头发的发生,到底需要如何做到,不一天掉多少根头发的发生,又会如何产生。 本人也是经过了深思熟虑,在每个日日夜夜思考这个问题。 一天掉多少根头发因何而发生? 一天掉多少根头发的发生,到底需要如何做到,不一天掉多少根头发的发生,又会如何产生。 现在,解决一天掉多少根头发的问题,是非常非常重要的。 所以, 一天掉多少根头发,发生了会如何,不发生又会如何。 米歇潘说过一句富有哲理的话,生命是一条艰险的峡谷,只有勇敢的人才能通过。这不禁令我深思。 本人也是经过了深思熟虑,在每个日日夜夜思考这个问题。 所谓一天掉多少根头发,关键是一天掉多少根头发需要如何写。
  易卜生曾说过这样一句话,伟大的事业,需要决心,能力,组织和责任感。这似乎解答了我的疑惑。 就我个人来说,一天掉多少根头发对我的意义,不能不说非常重大。 既然如此, 一天掉多少根头发因何而发生? 每个人都不得不面对这些问题。 在面对这种问题时, 既然如何, 塞内加在不经意间这样说过,勇气通往天堂,怯懦通往地狱。我希望诸位也能好好地体会这句话。 我们不得不面对一个非常尴尬的事实,那就是, 塞内加曾说过这样一句话,勇气通往天堂,怯懦通往地狱。这句话语虽然很短,但令我浮想联翩。 我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。
  了解清楚一天掉多少根头发到底是一种怎么样的存在,是解决一切问题的关键。 总结的来说, 塞涅卡说过一句富有哲理的话,生命如同寓言,其价值不在与长短,而在与内容。我希望诸位也能好好地体会这句话。 亚伯拉罕·林肯在不经意间这样说过,我这个人走得很慢,但是我从不后退。这不禁令我深思。 杰纳勒尔·乔治·S·巴顿曾经提到过,接受挑战,就可以享受胜利的喜悦。这句话语虽然很短,但令我浮想联翩。 一天掉多少根头发因何而发生? 总结的来说, 爱迪生说过一句著名的话,失败也是我需要的,它和成功对我一样有价值。带着这句话,我们还要更加慎重的审视这个问题: 这种事实对本人来说意义重大,相信对这个世界也是有一定意义的。 屠格涅夫曾说过这样一句话,你想成为幸福的人吗?但愿你首先学会吃得起苦。带着这句话,我们还要更加慎重的审视这个问题: 对我个人而言,一天掉多少根头发不仅仅是一个重大的事件,还可能会改变我的人生。 既然如此, 罗曼·罗兰在不经意间这样说过,只有把抱怨环境的心情,化为上进的力量,才是成功的保证。这似乎解答了我的疑惑。
  总结的来说, 莎士比亚曾说过这样一句话,人的一生是短的,但如果卑劣地过这一生,就太长了。带着这句话,我们还要更加慎重的审视这个问题: 经过上述讨论, 左拉说过一句富有哲理的话,生活的道路一旦选定,就要勇敢地走到底,决不回头。这不禁令我深思。 问题的关键究竟为何? 总结的来说, 我们都知道,只要有意义,那么就必须慎重考虑。 我们都知道,只要有意义,那么就必须慎重考虑。 我认为, 卡耐基说过一句富有哲理的话,我们若已接受最坏的,就再没有什么损失。这句话语虽然很短,但令我浮想联翩。
  一天掉多少根头发,到底应该如何实现。 经过上述讨论, 我们不得不面对一个非常尴尬的事实,那就是, 要想清楚,一天掉多少根头发,到底是一种怎么样的存在。 生活中,若一天掉多少根头发出现了,我们就不得不考虑它出现了的事实。 了解清楚一天掉多少根头发到底是一种怎么样的存在,是解决一切问题的关键。 本人也是经过了深思熟虑,在每个日日夜夜思考这个问题。 就我个人来说,一天掉多少根头发对我的意义,不能不说非常重大。 经过上述讨论, 西班牙曾经提到过,自己的鞋子,自己知道紧在哪里。我希望诸位也能好好地体会这句话。 我们不得不面对一个非常尴尬的事实,那就是, 一天掉多少根头发的发生,到底需要如何做到,不一天掉多少根头发的发生,又会如何产生。 一天掉多少根头发,发生了会如何,不发生又会如何。 而这些并不是完全重要,更加重要的问题是, 而这些并不是完全重要,更加重要的问题是, 一天掉多少根头发,发生了会如何,不发生又会如何。 一般来讲,我们都必须务必慎重的考虑考虑。 易卜生说过一句著名的话,伟大的事业,需要决心,能力,组织和责任感。这不禁令我深思。 就我个人来说,一天掉多少根头发对我的意义,不能不说非常重大。 一般来说, 苏轼说过一句富有哲理的话,古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。带着这句话,我们还要更加慎重的审视这个问题: 经过上述讨论, 西班牙曾说过这样一句话,自己的鞋子,自己知道紧在哪里。带着这句话,我们还要更加慎重的审视这个问题: 生活中,若一天掉多少根头发出现了,我们就不得不考虑它出现了的事实。 而这些并不是完全重要,更加重要的问题是, 经过上述讨论, 莎士比亚曾经说过,抛弃时间的人,时间也抛弃他。这似乎解答了我的疑惑。 现在,解决一天掉多少根头发的问题,是非常非常重要的。 所以, 一般来说, 在这种困难的抉择下,本人思来想去,寝食难安。 既然如何, 洛克说过一句富有哲理的话,学到很多东西的诀窍,就是一下子不要学很多。带着这句话,我们还要更加慎重的审视这个问题: 那么, 我们都知道,只要有意义,那么就必须慎重考虑。 要想清楚,一天掉多少根头发,到底是一种怎么样的存在。 这种事实对本人来说意义重大,相信对这个世界也是有一定意义的。 苏轼说过一句著名的话,古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。我希望诸位也能好好地体会这句话。 歌德在不经意间这样说过,读一本好书,就如同和一个高尚的人在交谈。这启发了我, 克劳斯·莫瑟爵士曾经提到过,教育需要花费钱,而无知也是一样。这不禁令我深思。 我们不得不面对一个非常尴尬的事实,那就是, 经过上述讨论。
  我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。 既然如此, 经过上述讨论, 一天掉多少根头发因何而发生? 我们都知道,只要有意义,那么就必须慎重考虑。 一天掉多少根头发,到底应该如何实现。 问题的关键究竟为何? 生活中,若一天掉多少根头发出现了,我们就不得不考虑它出现了的事实。 可是,即使是这样,一天掉多少根头发的出现仍然代表了一定的意义。 莎士比亚说过一句富有哲理的话,本来无望的事,大胆尝试,往往能成功。带着这句话,我们还要更加慎重的审视这个问题: 我认为, 要想清楚,一天掉多少根头发,到底是一种怎么样的存在。 一天掉多少根头发因何而发生? 从这个角度来看, 就我个人来说,一天掉多少根头发对我的意义,不能不说非常重大。 可是,即使是这样,一天掉多少根头发的出现仍然代表了一定的意义。 那么, 而这些并不是完全重要,更加重要的问题是。
  那么, 既然如此, 冯学峰在不经意间这样说过,当一个人用工作去迎接光明,光明很快就会来照耀着他。我希望诸位也能好好地体会这句话。 叔本华曾说过这样一句话,意志是一个强壮的盲人,倚靠在明眼的跛子肩上。这启发了我, 带着这些问题,我们来审视一下一天掉多少根头发。 了解清楚一天掉多少根头发到底是一种怎么样的存在,是解决一切问题的关键。 所谓一天掉多少根头发,关键是一天掉多少根头发需要如何写。 在这种困难的抉择下,本人思来想去,寝食难安。 我认为。
  我们都知道,只要有意义,那么就必须慎重考虑。 既然如此, 德国在不经意间这样说过,只有在人群中间,才能认识自己。带着这句话,我们还要更加慎重的审视这个问题: 所谓一天掉多少根头发,关键是一天掉多少根头发需要如何写。 就我个人来说,一天掉多少根头发对我的意义,不能不说非常重大。 一天掉多少根头发,发生了会如何,不发生又会如何。 这样看来, 我认为, 问题的关键究竟为何? 在这种困难的抉择下,本人思来想去,寝食难安。 所谓一天掉多少根头发,关键是一天掉多少根头发需要如何写。 了解清楚一天掉多少根头发到底是一种怎么样的存在,是解决一切问题的关键。 经过上述讨论, 歌德曾经提到过,读一本好书,就如同和一个高尚的人在交谈。这启发了我, 就我个人来说,一天掉多少根头发对我的意义,不能不说非常重大。 所谓一天掉多少根头发,关键是一天掉多少根头发需要如何写。 我认为, 一天掉多少根头发,发生了会如何,不发生又会如何。 了解清楚一天掉多少根头发到底是一种怎么样的存在,是解决一切问题的关键。 总结的来说, 本人也是经过了深思熟虑,在每个日日夜夜思考这个问题。 既然如此, 伏尔泰说过一句著名的话,不经巨大的困难,不会有伟大的事业。这句话语虽然很短,但令我浮想联翩。 要想清楚,一天掉多少根头发,到底是一种怎么样的存在。
  邓拓说过一句富有哲理的话,越是没有本领的就越加自命不凡。这句话语虽然很短,但令我浮想联翩。 这样看来, 这样看来, 那么, 就我个人来说,一天掉多少根头发对我的意义,不能不说非常重大。 鲁巴金说过一句富有哲理的话,读书是在别人思想的帮助下,建立起自己的思想。这启发了我, 我认为, 这样看来, 从这个角度来看, 莎士比亚说过一句著名的话,本来无望的事,大胆尝试,往往能成功。带着这句话,我们还要更加慎重的审视这个问题: 总结的来说, 对我个人而言,一天掉多少根头发不仅仅是一个重大的事件,还可能会改变我的人生。 一般来说, 卡耐基曾经提到过,我们若已接受最坏的,就再没有什么损失。我希望诸位也能好好地体会这句话。 我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。 我认为, 所谓一天掉多少根头发,关键是一天掉多少根头发需要如何写。 经过上述讨论, 吕凯特在不经意间这样说过,生命不可能有两次,但许多人连一次也不善于度过。我希望诸位也能好好地体会这句话。 培根曾经说过,合理安排时间,就等于节约时间。这不禁令我深思。 赫尔普斯曾说过这样一句话,有时候读书是一种巧妙地避开思考的方法。我希望诸位也能好好地体会这句话。 我认为。
  从这个角度来看, 可是,即使是这样,一天掉多少根头发的出现仍然代表了一定的意义。 经过上述讨论, 一般来说, 生活中,若一天掉多少根头发出现了,我们就不得不考虑它出现了的事实。 培根曾经提到过,阅读使人充实,会谈使人敏捷,写作使人精确。我希望诸位也能好好地体会这句话。 伏尔泰曾经提到过,坚持意志伟大的事业需要始终不渝的精神。我希望诸位也能好好地体会这句话。 我认为, 亚伯拉罕·林肯曾经说过,你活了多少岁不算什么,重要的是你是如何度过这些岁月的。这似乎解答了我的疑惑。 那么, 在这种困难的抉择下,本人思来想去,寝食难安。 在这种困难的抉择下,本人思来想去,寝食难安。 一天掉多少根头发,到底应该如何实现。 一天掉多少根头发,到底应该如何实现。 那么, 这种事实对本人来说意义重大,相信对这个世界也是有一定意义的。 一般来讲,我们都必须务必慎重的考虑考虑。 所谓一天掉多少根头发,关键是一天掉多少根头发需要如何写。 一天掉多少根头发,到底应该如何实现。 而这些并不是完全重要,更加重要的问题是, 一天掉多少根头发,发生了会如何,不发生又会如何。 就我个人来说,一天掉多少根头发对我的意义,不能不说非常重大。 了解清楚一天掉多少根头发到底是一种怎么样的存在,是解决一切问题的关键。 卡莱尔曾经提到过,过去一切时代的精华尽在书中。这句话语虽然很短,但令我浮想联翩。 从这个角度来看, 经过上述讨论, 我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。 总结的来说, 了解清楚一天掉多少根头发到底是一种怎么样的存在,是解决一切问题的关键。 现在,解决一天掉多少根头发的问题,是非常非常重要的。 所以, 我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。
  叔本华说过一句富有哲理的话,普通人只想到如何度过时间,有才能的人设法利用时间。这不禁令我深思。 所谓一天掉多少根头发,关键是一天掉多少根头发需要如何写。 一天掉多少根头发因何而发生? 一般来说, 我们都知道,只要有意义,那么就必须慎重考虑。 一般来讲,我们都必须务必慎重的考虑考虑。 所谓一天掉多少根头发,关键是一天掉多少根头发需要如何写。 本人也是经过了深思熟虑,在每个日日夜夜思考这个问题。 在这种困难的抉择下,本人思来想去,寝食难安。 我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。 一天掉多少根头发,到底应该如何实现。 所谓一天掉多少根头发,关键是一天掉多少根头发需要如何写。 问题的关键究竟为何? 了解清楚一天掉多少根头发到底是一种怎么样的存在,是解决一切问题的关键。 在这种困难的抉择下,本人思来想去,寝食难安。 总结的来说, 我们不得不面对一个非常尴尬的事实,那就是, 所谓一天掉多少根头发,关键是一天掉多少根头发需要如何写。 既然如何, 一天掉多少根头发的发生,到底需要如何做到,不一天掉多少根头发的发生,又会如何产生。 我们不得不面对一个非常尴尬的事实,那就是, 德国曾经说过,只有在人群中间,才能认识自己。这不禁令我深思。 而这些并不是完全重要,更加重要的问题是, 歌德说过一句富有哲理的话,没有人事先了解自己到底有多大的力量,直到他试过以后才知道。这似乎解答了我的疑惑。 对我个人而言,一天掉多少根头发不仅仅是一个重大的事件,还可能会改变我的人生。 一天掉多少根头发的发生,到底需要如何做到,不一天掉多少根头发的发生,又会如何产生。 塞涅卡说过一句著名的话,生命如同寓言,其价值不在与长短,而在与内容。带着这句话,我们还要更加慎重的审视这个问题: 我们不得不面对一个非常尴尬的事实,那就是, 现在,解决一天掉多少根头发的问题,是非常非常重要的。 所以, 一般来讲,我们都必须务必慎重的考虑考虑。 笛卡儿说过一句著名的话,我的努力求学没有得到别的好处,只不过是愈来愈发觉自己的无知。带着这句话,我们还要更加慎重的审视这个问题: 我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。 那么, 一天掉多少根头发,发生了会如何,不发生又会如何。 既然如何, 一般来说, 那么, 一天掉多少根头发的发生,到底需要如何做到,不一天掉多少根头发的发生,又会如何产生。 总结的来说, 要想清楚,一天掉多少根头发,到底是一种怎么样的存在。 要想清楚,一天掉多少根头发,到底是一种怎么样的存在。 了解清楚一天掉多少根头发到底是一种怎么样的存在,是解决一切问题的关键。 一般来讲,我们都必须务必慎重的考虑考虑。 这种事实对本人来说意义重大,相信对这个世界也是有一定意义的。 而这些并不是完全重要,更加重要的问题是, 可是,即使是这样,一天掉多少根头发的出现仍然代表了一定的意义。 白哲特曾经说过,坚强的信念能赢得强者的心,并使他们变得更坚强。 我希望诸位也能好好地体会这句话。 经过上述讨论, 从这个角度来看, 池田大作说过一句著名的话,不要回避苦恼和困难,挺起身来向它挑战,进而克服它。这启发了我, 从这个角度来看, 所谓一天掉多少根头发,关键是一天掉多少根头发需要如何写。 一天掉多少根头发,发生了会如何,不发生又会如何。 这样看来, 总结的来说, 一天掉多少根头发,到底应该如何实现。 所谓一天掉多少根头发,关键是一天掉多少根头发需要如何写。 在这种困难的抉择下,本人思来想去,寝食难安。 要想清楚,一天掉多少根头发,到底是一种怎么样的存在。 要想清楚,一天掉多少根头发,到底是一种怎么样的存在。 从这个角度来看, 培根说过一句富有哲理的话,合理安排时间,就等于节约时间。这句话语虽然很短,但令我浮想联翩。 一天掉多少根头发的发生,到底需要如何做到,不一天掉多少根头发的发生,又会如何产生。 对我个人而言,一天掉多少根头发不仅仅是一个重大的事件,还可能会改变我的人生。 要想清楚,一天掉多少根头发,到底是一种怎么样的存在。 我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。 了解清楚一天掉多少根头发到底是一种怎么样的存在,是解决一切问题的关键。 一天掉多少根头发的发生,到底需要如何做到,不一天掉多少根头发的发生,又会如何产生。 既然如此, 就我个人来说,一天掉多少根头发对我的意义,不能不说非常重大。 就我个人来说,一天掉多少根头发对我的意义,不能不说非常重大。 问题的关键究竟为何? 一天掉多少根头发,到底应该如何实现。 而这些并不是完全重要,更加重要的问题是, 这样看来, 贝多芬曾经提到过,卓越的人一大优点是:在不利与艰难的遭遇里百折不饶。带着这句话,我们还要更加慎重的审视这个问题: 一天掉多少根头发,到底应该如何实现。 我们不得不面对一个非常尴尬的事实,那就是, 我认为, 本人也是经过了深思熟虑,在每个日日夜夜思考这个问题。 这样看来, 一般来讲,我们都必须务必慎重的考虑考虑。 我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。
  从这个角度来看, 塞内加曾经说过,勇气通往天堂,怯懦通往地狱。这句话语虽然很短,但令我浮想联翩。 现在,解决一天掉多少根头发的问题,是非常非常重要的。 所以, 米歇潘在不经意间这样说过,生命是一条艰险的峡谷,只有勇敢的人才能通过。带着这句话,我们还要更加慎重的审视这个问题: 一般来说, 生活中,若一天掉多少根头发出现了,我们就不得不考虑它出现了的事实。 一天掉多少根头发因何而发生? 可是,即使是这样,一天掉多少根头发的出现仍然代表了一定的意义。 一般来说, 一天掉多少根头发的发生,到底需要如何做到,不一天掉多少根头发的发生,又会如何产生。 经过上述讨论, 这种事实对本人来说意义重大,相信对这个世界也是有一定意义的。 所谓一天掉多少根头发,关键是一天掉多少根头发需要如何写。 我认为, 一天掉多少根头发的发生,到底需要如何做到,不一天掉多少根头发的发生,又会如何产生。 邓拓在不经意间这样说过,越是没有本领的就越加自命不凡。这句话语虽然很短,但令我浮想联翩。 我们一般认为,抓住了问题的关键,其他一切则会迎刃而解。 日本谚语曾经提到过,不幸可能成为通向幸福的桥梁。这不禁令我深思。 了解清楚一天掉多少根头发到底是一种怎么样的存在,是解决一切问题的关键。 生活中,若一天掉多少根头发出现了,我们就不得不考虑它出现了的事实。 这种事实对本人来说意义重大,相信对这个世界也是有一定意义的。 一般来说, 一天掉多少根头发,到底应该如何实现。 在这种困难的抉择下,本人思来想去,寝食难安。 带着这些问题,我们来审视一下一天掉多少根头发。 要想清楚,一天掉多少根头发,到底是一种怎么样的存在。 就我个人来说,一天掉多少根头发对我的意义,不能不说非常重大。 一天掉多少根头发,发生了会如何,不发生又会如何。

网页版

@suulnnka

原版

@menzi11

网站查看

http://asplos.dev/%E6%96%87%E7%AB%A0%E7%94%9F%E6%88%90%E5%99%A8.html

自己尝试

https://suulnnka.github.io/BullshitGenerator/index.html

操作系统:Pintos Project2 详解

前情提要

在上个月的紧赶慢赶,连续一周持续4点睡觉以后,终于完成了斯坦福OS的pintos2 project。网上中文资源太少,也没有所谓的详解,我就大概出来献一下丑。

我们的代码开源在 http://victoryang00.xyz:5012/victoryang/pintos-team-20

credit:https://static1.squarespace.com/static/5b18aa0955b02c1de94e4412/t/5b85fad2f950b7b16b7a2ed6/1535507195196/Pintos+Guide

需要改动的文件集中在userprog 文件夹下,官方给出的需要改动的行数:

 threads/thread.c     |   13 
 threads/thread.h     |   26 +
 userprog/exception.c |    8 
 userprog/process.c   |  247 ++++++++++++++--
 userprog/syscall.c   |  468 ++++++++++++++++++++++++++++++-
 userprog/syscall.h   |    1 
 6 files changed, 725 insertions(+), 38 deletions(-)

为了通过测试,你需要做五件事:

•传递可执行文件名称,而不是线程_create和文件sys_open的原始文件名。 •正确设置堆栈
•实现简单形式的process_wait
•使用putbuf为STDOUT_FILENO实现write syscall
•实施出口syscall。
这将使您开始通过userprog的前几个测试。

args测试集

这个测试集要求把值传入到 esp 中,非常像OS实现的脚本程序,比普通的python 中的 args.append() 多加一个地址处理来翻译。

pintos -v -k -T 60 --filesys-size=2 -p tests/userprog/args-none -a args-none -- -q -f run args-none
pintos -v -k -T 60 --filesys-size=2 -p tests/userprog/args-single -a args-single -- -q -f run 'args-single onearg'
pintos -v -k -T 60 --filesys-size=2 -p tests/userprog/args-multiple -a args-multiple -- -q -f run 'args-multiple some arguments for you!'
pintos -v -k -T 60 --filesys-size=2 -p tests/userprog/args-many -a args-many -- -q -f run 'args-many a b c d e f g h i j k l m n o p q r s t u v'
pintos -v -k -T 60 --filesys-size=2 -p tests/userprog/args-dbl-space -a args-dbl-space -- -q -f run 'args-dbl-space two spaces!'

大概解释一下脚本的含义,贵校用的测试机上只有bochs,makefile.vars 中不用修改。 之前遇到启动 makefile 参数的问题,改这个文件就行。 pintos 命令是一个 perl 脚本,-v -k -T 60 是启动参数, --filesys-size=2 定义文件系统大小。名字不超过14,最大16个文件。 -p 载入文件, -a 载入测试名。 -q -f 为 format 以后 run, 最后是在系统中运行的命令。所有的源代码可以在 .c 文件中看到,如果有某个 testcase 没过就去看。

学长做 check 的时候问过这样一个问题,proj1 和 2 最大的 testcase 区别是什么?proj1 是直接调用写好的程序,而 proj2 传入参数。可以清楚的看到传入参数的格式:

user_program arg1 arg2 arg3 arg4

稍稍看看 args 最大的数量,最多 50 个参数,那直接开一个数组实现,这样的好处是直接通过空格看多少 args ,读的时候看位数就好。

(args) argv[20] = 't'
(args) argv[21] = 'u'
(args) argv[22] = 'v'
(args) argv[23] = null
(args) end

当用户程序开始被执行的时候是先调用process.c 再调用 thread_create() 。注意到该线程被命名为原始文件名:

tid = thread_create(file_name, PRI_DEFAULT, start_process, fn_copy);

你不希望线程具有原始文件名。相反,你希望线程的名称为可执行文件的名称。您将需要从file_name中提取可执行文件名称,然后将其传递。fd(file descriptor就上线了,好处是直接读取数组位置)

tid = thread_create {exec_name,PRI_DEFAULT,start_process,fn_copy;

另请注意fn_copy。这是原始文件名的副本,并作为辅助参数传递。这将派上用场。该线程将运行的函数是start_process,该函数接受参数void * file_name_。 fn_copy作为此参数传递,使您可以在此函数中访问完整的原始文件名的副本。这将派上用场。

如果您查看start_process函数,将看到一个load函数;此功能是在用户程序中加载所有数据的位置。在此加载功能中,Pintos将尝试加载描述。从参数中的指定文件执行用户程序,等待带有指定tid的子进程在继续执行之前完成。

在装入函数中,您还将找到一个名为setup_stack的函数。在此功能中,您将为每个用户程序设置堆栈。

接下来看pintos guide 上的对 stack pointer 的描述,一开始需要先初始化 esp 来存值。首先要说的就是如何debug 因为你一上来一个testcase 都过不了。先介绍两个关于内存读入的函数和一个工具。

memset and memcpy

假设要将一条信息写入指针的目标,就用memset。例如,假设我们要编写字符a,执行以下操作:

#include <stdio.h>
int main(void)
{
   char my_string[] = "XSCI350";
   printf("Original: %s\n", my_string); 
   //ptr points to the start of the string 
   char* ptr = my_string;
   //memset(void pointer to data to modify, write data, size of data in bytes)
   memset(static_cast<void*>(ptr), ’C’, sizeof(char)); printf("After: %s\n", my_string);
   return 0;
}

输出是:

Original: XSCI350
After:    CSCI350

这不是要写单个数据,而是要写一个数据字符串。 这时就要使用 memcpy。 例如,假设我们要编写字符串CSCI350,将执行以下操作:

#include <stdio.h>
int main(void)
{
    char my_string[] = "ABCD123";
    printf("Original: %s\n", my_string); //ptr points to the start of the string

    char* ptr = my_string;
    //memcpy(void pointer to data to modify, write data, size of data in bytes)
    memset(static_cast<void*>(ptr), ’CSCI350’, sizeof(char) * 7);
    printf("After: %s\n", my_string);
    return 0; 
}

输出是:

Original: ABCD123
After:    CSCI350

Hex Dump

它允许你打印出指定堆栈的地址和地址内容。 使用十六进制转储的原型是:

static void hex_dump((uintptr_t)**, void**, int, bool)

这里有一个 hexdump 的案例

接下来实现 process.c 的第一个函数 setup_stack 。

这是双指针,因为你将要进行指针操作,并且由于你希望这些修改是全局的,而不仅仅是在此功能的范围内,因此你将获得一个指向堆栈指针的指针(为指针传递一个指针)。 void** esp 将内容写到你要解引用的堆栈中

按照文档,一开始定义为 PHYS_BASE , 也就是 0xffffffff 。

这里是按 stack 的习惯写入。上面的CSCI350应该写为053ICSC。

上面是一个小测试,我们可以用 hexdump 来检查它输出的到底是什么。

剩下的就是反转了,没什么花样,不过除了我们实现的方法,还有更笨的直接取反。

恶心的testcase

这次的 multioom 是个很恶心的 testcase,相当于一个压力测试,先读入 args 到不能读,再继续不断地 syscall, 就是看你的程序会不会自己 halt 或者退出。

算是一个比较极端的例子,不过只要能跑其他的,这个只是看看你的上界对不对而已。