What is abstraction?
Abstraction from Latin is translated as distraction . But this concept does not mean a change in activity, but a change in thinking - a look at familiar or unfamiliar things from a different angle or from a different perspective. The word abstract means that it is necessary to step away from your activity in order to impartially understand it, analyze its processes and identify principles.
Abstraction means, on vacation by the ocean, forget about work, everyday life and focus on relaxation
The human brain is accustomed to looking at things and situations, combining all the ideas it has about this object, without dividing it into its component parts. What is abstraction? According to the definition of psychology, abstraction is the separation or even distancing of one component from another.
Operating Systems: Three Easy Pieces. Part 2: Abstraction: Process (translation)
Hello, Habr!
I would like to present to your attention a series of articles-translations of one literature that is interesting in my opinion - OSTEP. This material examines quite deeply the work of unix-like operating systems, namely, work with processes, various schedulers, memory and other similar components that make up a modern OS. You can see the original of all materials here. Please note that the translation was done unprofessionally (quite freely), but I hope I retained the general meaning. Let's look at the most fundamental abstraction that the OS provides to users: the process. The definition of a process is quite simple - it is a running program
. The program itself is a lifeless thing located on the disk - it is a set of instructions and possibly some static data waiting to be launched. It's the OS that takes those bytes and runs them, transforming the program into something useful. Most often, users want to run more than one program at the same time, for example, you can run a browser, game, media player, text editor, and the like on your laptop. In fact, a typical system can run tens or hundreds of processes simultaneously. This fact makes the system easier to use, you never have to worry about whether the CPU is free, you just run programs.
This raises the problem: how to provide the illusion of many CPUs? How can the OS create the illusion of an almost infinite number of CPUs, even if you only have one physical CPU?
The OS creates this illusion through CPU virtualization. By starting one process, then stopping it, starting another process, and so on, the OS can maintain the illusion that there are many virtual CPUs, when in fact there will be one or more physical processors. This technique is called CPU time sharing
.
This technique allows users to run as many concurrent processes as they wish. The cost of this solution is performance - since if the CPU is shared by several processes, each process will be processed more slowly. To implement CPU virtualization, and especially to do it well, the OS needs both low-level and high-level support. Low-level support is called mechanisms
- these are low-level methods or protocols that implement the desired part of the functionality.
An example of such functionality is context switching, which gives the OS the ability to stop one program and run another program on the processor. This time division is implemented in all modern operating systems. On top of these mechanisms is some logic built into the OS, in the form of “policies”. A policy
is an operating system decision-making algorithm.
Such policies, for example, decide which program should be launched (from a list of commands) first. So, for example, this problem will be solved by a policy called scheduling policy
and when choosing a solution it will be guided by such data as: startup history (which program was launched the longest in the last minutes), what load this process carries (what types of programs were launched ), performance metrics (whether the system is optimized for interactivity or throughput), and so on.
Abstraction: process
The abstraction of a running program executed by the operating system is what we call a process
.
As mentioned earlier, a process is simply a running program, at any instantaneous period of time. A program with which we can obtain summary information from various system resources that this program accesses or affects during its execution. To understand the components of the process, you need to understand the states of the system: what the program can read or change during its operation. At any given time, you need to understand which elements of the system are important for the execution of the program. One of the obvious elements of system state that a process includes is memory
.
Instructions are located in memory. The data that the program reads or writes is also located in memory. Thus, the memory that a process can address (called address space) is part of the process. Also part of the system state are registers. Many instructions are aimed at changing the value of registers or reading their value, and thus registers also become an important part of the operation of the process. It should be noted that the machine state is also formed from some special registers. For example, IP - instruction pointer
- a pointer to the instruction that the program is currently executing.
There is also a stack pointer
and an associated
frame pointer
, which are used to manage: function parameters, local variables and return addresses. Finally, programs often access ROM (read-only memory). This “I/O” (input/output) information should include a list of files currently open by the process.
Process API
In order to improve our understanding of how the process works, let's study examples of system calls that should be included in any operating system interface. These APIs are available in one form or another on any OS.
Process Creation: Details
One of the interesting things is how exactly programs are transformed into processes. Especially how the OS picks up and runs the program. How exactly the process is created. First of all, the OS must load the program code and static data into memory (into the process address space). Programs are usually located on a disk or solid-state drive in some executable format. Thus, the process of loading program and static data into memory requires the OS to be able to read those bytes from disk and place them somewhere in memory.
In early operating systems, the loading process was done eagerly, which means that the entire code was loaded into memory before the program was launched. Modern operating systems do this lazily, that is, loading pieces of code or data only when the program requires them during its execution.
Once the code and static data are loaded into OS memory, there are a few more things that need to be done before the process can run. Some amount of memory must be allocated for the stack. Programs use the stack for local variables, function parameters, and return addresses
. The OS allocates this memory and gives it to the process. The stack can also be allocated with some arguments, specifically it fills the parameters of the main() function, for example with an array of argc and argv.
Why do you need the ability to abstract?
Before mastering abstraction techniques, it is important to understand that there are situations when you need to get rid of thoughts about trifles, discard the unnecessary and unnecessary and understand the essence of the problem. And to do this, you need to separate one property from all the others. What does it mean to abstract? This means being able to mentally distract yourself from certain things.
The ability to abstract helps to highlight only what is important, necessary at this moment, throwing aside the accompanying husk
The ability to abstract is an effective definition of desires and goals, as well as ways to achieve them. The technique helps, when you are extremely busy, to be able to move away from distracting and irritating factors in order to solve a momentary problem. Or, by abstracting oneself, one can study the necessary material without analyzing it and comparing it with previously studied material, which speeds up the learning process itself. Effective and quick completion of a given goal and task is the ability to concentrate and abstract in the shortest possible time.
How the abstract turns into the concrete
Without abstraction, it is difficult to imagine scientific knowledge, methods and calculations. Even at the elementary level - in arithmetic we add not two pears and three more pears, but simply two plus three (in the real world there is no “three”). Further, the level of abstraction increases (mathematics is generally the most abstract science): exponentiation, integral, derivative, and even the square root of minus one! Also, abstract concepts underlie geometry: a point, a straight line, a plane - they do not exist in real life.
Another area of cognition where abstraction flourishes is philosophy.
The rules of logic allow you to make conclusions using abstract concepts, ideas, and create theories from them.
Theoretical physics is another “realm of abstractions”. In addition to the already mentioned “spherical horse in a vacuum,” there are completely serious abstract concepts, for example, “absolute black body” and “ideal gas.” The most important thing is that, operating with abstract categories, physicists make calculations of completely real processes. It is difficult to give a more convincing example of this than the story of how the abstract E=mc2 turned into an atomic bomb.
Abstraction Methods
- Let's create a template . Any property, characteristic of an object, upon careful consideration, can be used as a kind of template, sample. This helps with global decisions and thinking. This sample will become a kind of starting point, based on which other properties are considered from a different angle.
- We identify . When considering a phenomenon, situation or thing, you take into account only the connecting characteristics and properties, while the distinctive features of a given object are not taken into account.
- Let's make it more specific . To clearly define the boundaries of an object and separate it from everything else that is similar to it or has generalizing features, focus on a single specific concept, without taking into account other properties and characteristics.
- Grouping and summarizing . In this case, all attention is concentrated directly on the properties that are characteristic of a certain concept. With such systematization, certain groups are created that are independent and differ from each other and from others. But, even having their key points, these groups still have similar characteristics and concepts of other similar groups.
Abstraction is similar to meditation: you need to discard everything unnecessary and concentrate on one thing
Types of Abstractions
Abstractions are transformed ideas about an object or phenomenon of the objective world.
- Isolating abstraction. Corresponds to the isolation and fixation of certain features of an object or phenomenon.
- Converting abstraction. Corresponds to the general characteristics of an object or phenomenon (taking into account all the features together).
- Idealization. Corresponds to the replacement of a real goal with a certain idealized image. It is used for the most effective use of all available tools to achieve the designated result.
Learning to abstract ourselves
Often asking questions about how to learn to abstract from negativity and problems in society, how to abstract from unpleasant people, people look for complicated ways to solve the problem. Synonyms for “abstract” are the words “distracted”, “move away”. Of course, no one says that learning to move away is easy; this process is long and requires effort . But if you want and set the right goal, you can learn.
- Finding yourself in a difficult situation, a person becomes lost, his thoughts are confused, and it is difficult to concentrate. And you’ve probably noticed more than once that after a while it dawns on you what was the best thing to do or say at that moment. The point is that after a while, you look at the situation from the outside . And in order to be able to abstract yourself in time in a difficult situation, consider it from such an angle as if what is happening is happening not to you, but to another person, or imagine that you are watching a movie. Thoughts will fall into place, and the decision will come on its own.
- Disconnect from external stimuli . In reality it's not that difficult. Imagine the phenomena that interfere with you not as an action that can be stopped, but as background noise that will not go away, and then the brain itself will stop responding to them.
- Always and in all situations, highlight only the important points and aspects . To begin with, mark something for yourself in a notebook; over time, you will learn to systematize and classify the flow, and highlight the main thing mentally, without notes.
- You can use tables and diagrams that will help organize data and teach you to highlight the main thing.
- To make it easier to concentrate on one thing, mentally pronounce an important aspect or action.
- Learn to set clear and understandable goals . It doesn't have to be something florid or around the bush. Don’t think about ways to achieve a goal; rather, consider a clearly defined final result, based on which it will be easier to move towards what you want.
- Don't do many tasks and things at the same time. Solve problems as they arise , separate the important from the mediocre. Perform any action consistently.
- The ability to abstract lies in both discipline and a clear routine.
Knowing how to abstract yourself from a situation will help you solve complex cases in a short time, seeing the essence of the issue itself.
Below we invite you to watch an interesting video on the topic: this is the Russian version of the video “Abstract-ness” by the Khan Academy (a non-profit educational organization created in 2008 by MIT and Harvard graduate Salman Khan)
Forms of abstract thinking
With abstract thinking, a person operates with different knowledge and mental experiences. Over time, all this came to a certain system. Many phenomena of the world are not subject to sight, hearing or touch (and about some we can say that they do not exist at all as such). But such phenomena are part of human life, and therefore must have at least some form.
There are three main forms of abstract thinking: concept, judgment and inference. Let's talk about them briefly.
Concept
A concept is a thought that conveys a common property of various phenomena. Properties may vary, but be homogeneous and similar, which allows them to be combined into one group. Let's take a car for example. It can be an SUV, sedan or hatchback; Different cars have different shapes, colors, characteristics. But their common feature is that they all have wheels, an engine, a gearbox, etc., and that they can be driven. These characteristics (design, purpose) allow properties to be classified into one group.
And we are taught such things from the cradle. Mom talks about “cat”, and we immediately understand that this is a meowing and purring four-legged animal with a tail, etc. Cats come in different breeds and colors, but they all have common characteristics by which they belong to the general concept of “cat” or “cat”.
Judgment
A person uses judgment with the intention of confirming or disproving something. It can be simple or complex. Here is a simple thing - “the cat meows” - it can be expressed specifically and unambiguously. But the complex one - “the cat began to meow because he was hungry” - can be expressed in several declarative sentences.
Also, propositions can be true or false. True ones reflect the actual state of affairs and are based, as a rule, on the absence of an individual assessment of a person, i.e. he judges objectively. A false judgment becomes when a person expresses his interest based on personal reasons, and not on what is actually happening.
Inference
An inference is a thought formed by two or more judgments. This is a new – more complex judgment. Any inference consists of a premise, a conclusion and a conclusion. The premise is an initial judgment, the conclusion is logical thinking leading to a conclusion.
These three forms of abstract thinking form its basis. We operate all abstractions with their help. But what we have said (forms and types of abstract thinking and abstractions, their goals, etc.) may not be entirely sufficient for understanding abstract thinking and its features, since, in essence, all this is theory. Therefore, it makes sense to talk separately about specific examples.
The cogs of our internal mechanism
So what is abstraction? Undoubtedly, this is a complex mechanism that we resort to, sometimes without even realizing it. Mentally, a person separates the existing from the non-existent, isolating individual elements from the set. This could be a chain of events, a series of processes, a group of objects. Thus, turning to the individual characteristics of a person, psychology is able to abstract general properties from specific ones that apply to a given individual. This once again proves the indisputable argument that each person, like his mind and consciousness, is unique.
Analogy
In the very nature of the understanding of facts lies an analogy, connecting the threads of the unknown with the known. An analogy is a probable, plausible conclusion about the similarity of two objects in some characteristic based on their established similarity in other characteristics. The more similar features the compared objects have and the more significant these features are, the more accurate the conclusion. Analogies provide only probable conclusions, which play a huge role in cognition, since they lead to the formation of hypotheses - scientific guesses and assumptions, which during the subsequent stage of research and evidence can turn into scientific theories. An analogy with what we know helps us understand what is unknown. By analogy with the artificial selection of the best breeds of domestic animals, Charles Darwin formulated the principle of natural selection in the animal and plant world. Analogies with the mechanism of action of the muscles, brain, and sensory organs of animals and humans prompted the invention of many technical structures: excavators, robots, logical machines.
Abstraction and abstraction are a simplification of reality
Abstraction is a thought that was born in the process of abstraction (the process of eliminating and separating what is unimportant at the moment in order to see the main thing). The disappointed reader probably thought: “Well, again there is no clear definition, but only a vague phrase.” Be patient, there's only a little time left.
The word “abstractio” has three translation options from Latin:
- abstraction;
- exception;
- department.
These are mental operations that the brain performs on objects in the real world in the process of abstraction. And abstractions appear.
Here are some examples for understanding
.
- You went outside and looked up. What were you thinking? “A gas envelope of five layers of water vapor, containing 78% nitrogen, 21% oxygen, and so on.” Yes, you can go crazy!
To prevent this from happening, you are distracted from unimportant aspects, properties and connections of the object. You throw out the layers of the atmosphere, the chemical composition from your head and form a general thought - “sky”.So, “sky” is an abstraction
. You can go further and highlight other significant features of the object: color, weather, time of day. Then the following abstract concepts will arise: “blue sky”, “cloudy sky”, “night sky”.
- At the end of the month, you withdrew your salary from your bank card.
Now your general thought is “money”. This is also an abstraction. In the process of abstraction, you mentally excluded (separated) the unimportant connections of the object. For example, connections with a banking institution and employer. Do you wonder how long the title units have traveled before ending up in your wallet? Hardly. The important thing is that it's money.
So you are constantly abstracting
and generate abstractions. Without this process, my head would simply burst with thoughts.
Then why is it so difficult to sit through boring lectures?
Thinking abstractly is the ability of every person
To summarize the topic discussed, we now definitely know what abstraction is - a mental, conscious distraction from the properties of an object, due to which a new idea about it appears or a logical concept is formed.
The ability to apply abstraction in everyday life is inherent in a person from birth. In many ways, language skills and the development of the language itself play a big role here. Thus, when thoughts “flow” in an abstract order, consciousness does not focus on individual features of an object, characterizing it according to general indicators (for example, “fruit”). In contrast to the abstract, science provides arguments for the concrete - in this case, consciousness expands the boundaries of understanding, looking for additional properties (not just “fruit”, but “orange” or “sweet and sour apple”).
Application – in everything
The method of scientific abstraction is used in many areas: politics, mathematics, logic. We have already learned that under the general concept of abstraction lies a distraction from external phenomena in order to highlight unimportant details or the essence of the subject itself. Thanks to such an “outside view,” scientific concepts are born, which, in turn, form unified properties and connections that are combined into categories.
Thus, scientific abstraction can be traced in economics. In the world there are millions of different food and non-food products that people need every day. They all differ in many characteristics and properties. But, moving away from their endless comparisons, man involuntarily united them into a single category - goods as products intended for sale.
Scientific abstraction is noticeable in construction. Every construction includes a detailed calculation that takes into account the features of the future building. But exact geometric correspondences, as well as the strict interaction of all its individual components, are not always 100% feasible - it is either theoretically impossible or practically unacceptable due to excessive complexity. Because of this, using the method of scientific abstraction, the structure is schematized. Alleged minor factors are excluded, which, in turn, does not affect the accuracy and reliability of the calculations performed.
How to abstract yourself from noise and sounds
It has been scientifically proven that 1 billion impulses enter the human brain every second. The brain, of course, can filter out a lot of unnecessary data, but about a hundred signals will still be recorded by it. And most of the information comes to us in audio form, and it is not surprising that noises and sounds are constantly distracting and make us “twitch.”
The following recommendations will help you learn to ignore noise and sounds:
- Distractibility and irritability are seriously affected by fatigue and hunger. If you are hungry or overwhelmed from work, even the slightest noise will cause indignation and a desire to cover your ears. To prevent this, you need, at a minimum, to get a good night's sleep, eat normally and regularly, and rest during the working day and on weekends.
- If the cacophony finds you in a place where you can leave, we advise you not to delay and just change the place. In general, it is best to choose places to work and live where there is not a lot of noise. For example, life near a forest or the sea and life near a railway or airport are two qualitatively different things. If you are a freelancer, you can sometimes work in a library, in a park, or in nature.
- To prevent extraneous sounds from annoying you, if possible, avoid crowds of people, noisy streets, highways, and public transport. Of course, it won’t be possible to completely eliminate this from life, but from time to time you still need to enjoy peace and quiet. Don’t forget that the breathing technique we’ve already talked about also helps to abstract yourself from sounds.
- When it is impossible to exclude the source of extraneous sounds, you should try to drown it out with your own noise. At home - speakers, on the street - a player, in the car - a speaker system - music is a great distraction from annoying sounds. By the way, if you want to relax, New Age, ambient, ethnic music, trance and, of course, classics are best suited. Listening to this kind of music will help you maintain your ability to think and continue to work.
- When listening to music is not an option, you can simply wear special noise-cancelling headphones or even insert earplugs into your ears. Even at work, this technique is applicable if you clearly explain to your superiors and colleagues why you are doing this. And when the noise endlessly plagues the house and no changes in the situation are expected, it makes sense to resort to drastic measures - install double-glazed windows, stick soundproofing panels on the walls.
- You can abstract from noise using your imagination. Thought processes perfectly suppress negative reactions of consciousness. You can start to visualize something - imagine (learn how to develop the power of visualization). For example, when you are at home, and some equipment is working loudly outside, lie down on the sofa for ten minutes, and imagine in every detail how you are lying on the sand on the seashore, and the only thing you hear is the sound of the waves.
And another good way to learn to abstract yourself from sounds is to master the skill of not paying attention to background noise. If you begin to deliberately get used to any sounds, over time it will be easy not to pay attention to them. Play a video while working or reading and try to focus on what you are doing. If you're getting ready for a session and your neighbor keeps hammering nails into the wall, don't run away from it - instead, focus on the sound for a while and then continue learning the material.
Note that this skill will be useful to you always and everywhere, because you don’t know when and where the noise will catch you again. On top of that, absolute silence can have a depressing effect on the psyche. If you hear nothing at all, you will become distracted by the absence of sounds.
Now let's move on to the most important issue - negativity, negative emotions and obsessive thoughts. If it is quite easy to abstract yourself from the outside world and noises, then it is much more difficult to distract yourself from what is happening inside.