[From the last episode: We looked at the complexities of cacheA place to park data coming from slow memory so that you can access it quickly. It's built with SRAM memory, but it's organized so that you can figure out which parts haven't been used in a while so that they can be replaced with new cached items. Also, if you make a change to cached data, that change has to make its way back into the original slow storage. in a multicoreDescribes a computer chip that has more than one CPU on it. processor.]
OK, time for a breather and for some review. We’ve taken quite the tour of computing, both in an IoTThe Internet of Things. A broad term covering many different applications where "things" are interconnected through the internet. device (or even a laptop) and in the cloudA generic phrase referring to large numbers of computers located somewhere far away and accessed over the internet. For the IoT, computing may be local, done in the same system or building, or in the cloud, with data shipped up to the cloud and then the result shipped back down.. Here are some basic things we looked at:
- We started by examining the notion of threads, which let a processor run different parts of a program in a way that looks (but isn’t) concurrent in a single-core processor, but which could be concurrent in a multicore processor. (But at this point in the tour, we hadn’t gotten to multicore yet…)
- We then continued our threadA piece of a program that can execute at the same time that some other piece of that same program can execute. discussion by contrasting them with processes and by looking at blockingIn the context of a thread, refers to execution that may have to wait for a result to come back before it can proceed. While waiting, it’s said to be blocked. and non-blockingIn the context of a thread, refers to threads that can go off and do their thing without any other part of the program having to wait for them to finish. threads.
- We then took on the whole issue of thread concurrency (to which I just alluded above) in the case where there is only one processor coreThis can have more than one meaning. When discussing networks, the core is the heart of the network where much of the traffic (or at least that part that has to go a long ways to its destination) moves. This is in contrast to the edge -- the outer part of the network where devices like computers and printers get connected. When discussing computers, you can think of it as the same as a CPU..
- That gave us the opportunity to discuss true concurrency, first in the form of distributed computingA way of breaking up calculations and letting more than one computer work on different pieces at the same time in order to speed up the solution., where you solve a chunky problem with more than one computer systemThis is a very generic term for any collection of components that, all together, can do something. Systems can be built from subsystems. Examples are your cell phone; your computer; the radio in your car; anything that seems like a "whole.".
- We then looked at another way of implementing concurrency: multicore, or more than one processor core in the system.
- From there, we looked at how these tools can be used both in IoT devices (at the edgeThis term is slightly confusing because, in different contexts, in means slightly different things. In general, when talking about networks, it refers to that part of the network where devices (computers, printers, etc.) are connected. That's in contrast to the core, which is the middle of the network where lots of traffic gets moved around.), in the cloud, and in between.
- We then moved up to the cloud to take on some of the special characteristics of cloud computing, starting with the notion of multi-tenantingIn the Cloud, this refers to a situation where multiple different users or systems are sharing the same server. Ideally, those different "tenants" will never affect each other., or hosting more than one program or user in a cloud serverA computer with a dedicated purpose. Older familiar examples are print servers (a computer that controls local printing) and file servers (a computer used for storing files centrally). More modern examples are web servers (the computers that handle your web requests when you use your browser) or application servers (computers dedicated to handling the computing needs of a specific application). Servers are often powerful, expensive machines since they have to handle a heavy load..
- Then we took a couple posts to understand some of the challenges that simple multi-tenanting presents. We started by looking at memory addresses, and, in particular, pointersA variable that, instead of holding data, holds an address where data is located. That is, it "points" to the data instead of being the data. and how they’re used in programs.
- After that, we saw some of the problems that pointers and other addressWhen referring to memory, a binary number that shows where, within some memory block, the data you want is located. If you want to read or change that data, you have to give the address so that the right data is read or changed. issues can cause to motivate some of the securityRefers to whether or not IoT devices or data are protected from unauthorized viewers. and privacyRefers to whether or not information gathered about your usage of IoT devices by authorized people can be made public, or shared with others, without your consent. Different from (although related to) security, which protects such data and devices from access by unauthorized people. Different from privacy, which is more concerned about use of data by authorized people. challenges of simple multi-tenanting – which motivates why different ways were needed of handling multi-tenanting.
- This brought us to the notion of what it means to be virtualIn our context, refers to what are usually software models of some physical thing. The model behaves like the real thing except, in some cases, in performance..
- Which prepared us to then talk about virtual machines.
- We continued with our virtuous virtual discussion by looking at containersA way of separating applications running on the same server. It’s lighter-weight than a full virtual machine. and micro-servicesSmall programs that do things that, in an earlier time, would have been done within one large program. Breaking them out into smaller programs that then act as services to other programs makes them more robust and easier to maintain..
- We finished the cloud-specific tour by looking at how softwareIn this context, "software" refers to functions in an IoT device that are implemented by running instructions through some kind of processor. It's distinct from "hardware," where functions are built into a silicon chip or some other component. updates work differently today, with cloud-hosted programs, than they did in the past.
- We wrapped up our computing discussion with a couple of straggling topics, the first of which talks about building greater security into microcontrollers using trusted execution environmentsA separate area inside a processor where trusted software can run, with access to all resources. Software running outside that area has to access resources through the trusted area; it can’t do so directly..
- Our last topic tied together the notions of multicore processorsA computer chip that does computing work for a computer. It may do general work (like in your home computer) or it may do specialized work (like some of the processors in your smartphone). and cache, since cache gets more complex if there’s more than one processing core. [need link]
From here, we’re going to turn our attention to artificial intelligenceA broad term for technology that acts more human-like than a typical machine, especially when it comes to "thinking." Machine learning is one approach to AI., or AI. AI is a form of computing, but it’s extraordinarily different from conventional computing. And it gets a bit mind-boggling even for seasoned engineers – especially if they want to dive into the details. We won’t go crazy in that way, but it will hopefully give you a better idea of how this technology works, even as it spreads like wildfire.
Leave a Reply