tag:blogger.com,1999:blog-70896943281932535142024-03-05T01:55:52.514-08:00Eight Bits in Every ByteArizona Deanhttp://www.blogger.com/profile/04079156396215404866noreply@blogger.comBlogger10125tag:blogger.com,1999:blog-7089694328193253514.post-55064363888985891712021-06-14T16:26:00.002-07:002021-06-14T16:42:26.413-07:00<p> </p><p align="center" class="MsoNormal" style="line-height: 200%; text-align: center;"><b style="mso-bidi-font-weight: normal;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%;">Operating System Features and
Structures<o:p></o:p></span></b></p>
<p class="MsoNormal" style="line-height: 200%;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-bidi-font-weight: bold;"><span style="mso-tab-count: 1;"> </span>Computer systems consist of hardware
controlled by an operating system (OS). The kernel is dedicated code that runs
in protected memory at the top of the OS hierarchy. It is a computer program
that controls all resources available to the computer it runs on. It is always
resident in memory and manages all interactions between processes. Figure 1
shows typical interactions in an OS. At the highest level, there are two major
functions of the operating system. One is the management of hardware and
software (managing resources), and the other is to provide an interface to
applications.<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 200%;"><b><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%;"><span style="mso-tab-count: 1;"> </span>Resource management</span></b><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-bidi-font-weight: bold;"> consists of a set of services or functions inside the kernel. These
services include device, storage, memory, information management, process
control, communications, error detection, and protection and security of the
operating system.<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 200%;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-bidi-font-weight: bold;"><span style="mso-tab-count: 1;"> </span>Operating systems’ <b>application
interfaces</b> are typically user-accessible but also exist in the kernel
and must request service using system calls. Error detection is an example of a
function that can take place in the software application, but some operating
systems also handle error detection at the hardware level. File management is a
kernel service, and it is also a user-side function.<o:p></o:p></span></p>
<p class="MsoNormal" style="break-after: avoid; line-height: 200%; page-break-after: avoid;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-no-proof: yes;"><v:shapetype coordsize="21600,21600" filled="f" id="_x0000_t75" o:preferrelative="t" o:spt="75" path="m@4@5l@4@11@9@11@9@5xe" stroked="f">
<v:stroke joinstyle="miter">
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0">
<v:f eqn="sum @0 1 0">
<v:f eqn="sum 0 0 @1">
<v:f eqn="prod @2 1 2">
<v:f eqn="prod @3 21600 pixelWidth">
<v:f eqn="prod @3 21600 pixelHeight">
<v:f eqn="sum @0 0 1">
<v:f eqn="prod @6 1 2">
<v:f eqn="prod @7 21600 pixelWidth">
<v:f eqn="sum @8 21600 0">
<v:f eqn="prod @7 21600 pixelHeight">
<v:f eqn="sum @10 21600 0">
</v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:f></v:formulas>
<v:path gradientshapeok="t" o:connecttype="rect" o:extrusionok="f">
<o:lock aspectratio="t" v:ext="edit">
</o:lock></v:path></v:stroke></v:shapetype><v:shape alt="Timeline
Description automatically generated" id="Picture_x0020_4" o:spid="_x0000_i1029" style="height: 387.75pt; mso-wrap-style: square; visibility: visible; width: 468pt;" type="#_x0000_t75">
<v:imagedata o:title="Timeline
Description automatically generated" src="file:///C:/Users/Dean/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png">
</v:imagedata></v:shape></span><o:p></o:p></p>
<p class="MsoCaption"><span color="windowtext" style="font-family: "Times New Roman",serif; font-size: 12pt;"></span></p><div class="separator" dir="rtl" style="clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZDqg2jvMz1M8F27E7klSo_l_LQg0Bn3NNUvDQqBLL3PfUbpdahYNlHB-L2u27dt3v1Mr_K2TW7v2SS9T0mIDlxykvq315u8-ogxDnfbhOVkdjB99xHuYQyPRc6O2AwUPdSTIjsYMbDrr_/s701/Week+1+IA.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="581" data-original-width="701" height="407" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiZDqg2jvMz1M8F27E7klSo_l_LQg0Bn3NNUvDQqBLL3PfUbpdahYNlHB-L2u27dt3v1Mr_K2TW7v2SS9T0mIDlxykvq315u8-ogxDnfbhOVkdjB99xHuYQyPRc6O2AwUPdSTIjsYMbDrr_/w492-h407/Week+1+IA.png" width="492" /></a></div><br />Figure <!--[if supportFields]><span style='font-size:
12.0pt;font-family:"Times New Roman",serif;color:windowtext'><span
style='mso-element:field-begin'></span><span style='mso-spacerun:yes'> </span>SEQ
Figure \* ARABIC <span style='mso-element:field-separator'></span></span><![endif]--><span color="windowtext" style="font-family: "Times New Roman",serif; font-size: 12pt;"><span style="mso-no-proof: yes;">1</span></span><!--[if supportFields]><span
style='font-size:12.0pt;font-family:"Times New Roman",serif;color:windowtext'><span
style='mso-element:field-end'></span></span><![endif]--><span color="windowtext" style="font-family: "Times New Roman",serif; font-size: 12pt;"> Operating system
theory concept map<span style="mso-bidi-font-weight: bold;"><o:p></o:p></span></span><p></p>
<p align="center" class="MsoNormal" style="line-height: 200%; text-align: center;"><b style="mso-bidi-font-weight: normal;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%;">Processes and Threads<o:p></o:p></span></b></p>
<p class="MsoNormal" style="line-height: 200%;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-bidi-font-weight: bold;"><span style="mso-tab-count: 1;"> </span>Figure 2 illustrates processes and
threads in a processor. A <b>process</b> is a program in execution.
Silberschatz et al. (2014) state, "A process is the unit of work in a
modern time-sharing system" (p. 105). A program becomes a process when it
is loaded into memory. As a program, it is a list of instructions, but it becomes more as a </span><span style="font-family: "Times New Roman", serif; font-size: 12pt;">process. The instruction section of the process is called the
text section. As the process executes, its progress is tracked by a program
counter. It keeps a copy of the current contents of the processor registers,
maintains a stack for local variables and a data section for global variables.
The process often contains a heap of memory for its use and communication with
other processes.</span></p>
<p class="MsoNormal" style="line-height: 200%;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-bidi-font-weight: bold;"><span style="mso-tab-count: 1;"> </span>There are five process states. A
process is in the <b>new</b> state while loading into memory then
changes to the <b>ready</b> state. During process execution, it can
be in one of three states. It is <b>running</b> when a processor is
available, <b>ready</b> when waiting for the processor, and <b>waiting</b> when
it needs data from an event or I/O. The final state is <b>terminated</b> when
the process is complete or no longer needed.<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 200%;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-bidi-font-weight: bold;"><span style="mso-tab-count: 1;"> </span>Each process is represented by
a <b>process control block</b> (PCB) containing its current state, a
process identifier, the value of its program counter, copies of CPU registers,
CPU scheduling information, a list of open files, and I/O devices, and
accounting information to aid in scheduling decisions. The PCB is especially
useful when a process is swapped in or out of the processor. It can also be
extended to allow multithreading.<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 200%;"><b><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%;"><span style="mso-tab-count: 1;"> </span>Motivations</span></b><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-bidi-font-weight: bold;"> for
using multi-threaded processes include taking advantage of the multi-processor
architecture, allowing an application to do several things at once, and
reducing the overhead of creating multiple processes. The benefits of
single-threading is application responsiveness, threads can share the process
memory space, less allocation overhead, and it is scalable across multiple
processors.<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 200%;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-bidi-font-weight: bold;"><span style="mso-tab-count: 1;"> </span>Multithreading <b>models</b> involve
the relationship between user threads and kernel threads. A <b>many-to-one</b> model
maps multiple user threads to a single kernel thread. This model is rarely used
because it cannot take advantage of multi-core processors, and blocking calls
stop the entire process. It would seem a <b>one-to-one</b> model
would be the better way to go, but each user thread must create a corresponding
kernel thread. Kernel threads are resource expensive and can reduce the
performance if too many are implemented. This is the most common model in use.
The many-to-many model solves the problems of the other two models by
multiplexing the relationships between user and kernel threads.<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 200%;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-bidi-font-weight: bold;"><span style="mso-tab-count: 1;"> </span>Every process has a critical section
of code that changes something other processes can access. If two processes run
their critical-section code at the same time, there will be corrupted data. To
prevent this <b>critical-section problem</b>, we must ensure mutual
exclusion between the progress of and bounded waiting for processes.
Silberschatz et al. (2014) call this "a protocol that the processes can
use to cooperate" (p. 206). While hardware protocols exist, programmers
ensure their applications' processes use locks, semaphores, and priority
inversion to prevent deadlocks.<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 200%;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-bidi-font-weight: bold;"><span style="mso-tab-count: 1;"> </span>Bounded Waiting acts like a stack by
storing the number of times each processes' critical section (CS) runs. Brais
(2015) provided an excellent explanation, "the number of times other
processes enter their CSs must be limited." Bounded Waiting uses progress
to guarantee all CSs will eventually run.<o:p></o:p></span></p>
<p class="MsoNormal" style="break-after: avoid; line-height: 200%; page-break-after: avoid;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-no-proof: yes;"><v:shape alt="Diagram
Description automatically generated" id="Picture_x0020_5" o:spid="_x0000_i1028" style="height: 264.75pt; mso-wrap-style: square; visibility: visible; width: 379.5pt;" type="#_x0000_t75">
<v:imagedata o:title="Diagram
Description automatically generated" src="file:///C:/Users/Dean/AppData/Local/Temp/msohtmlclip1/01/clip_image002.jpg">
</v:imagedata></v:shape></span><o:p></o:p></p>
<p class="MsoCaption"><span color="windowtext" style="font-family: "Times New Roman",serif; font-size: 12pt;"></span></p><div class="separator" style="clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZFfBSAorAtQDElNNlfeFPdI2yyehPdQ4d8n_ZVTvlKJcv4OTW-QTsmp3ksW8s5Zb8RNw-TPKVxUZ_kFO7IsaEiuXSMrNBwzspH6imzFhbgnZa4m4eKmemiJArpNW6nSctJ-QIS-mWXwo_/s705/Week+2+IA.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="491" data-original-width="705" height="343" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZFfBSAorAtQDElNNlfeFPdI2yyehPdQ4d8n_ZVTvlKJcv4OTW-QTsmp3ksW8s5Zb8RNw-TPKVxUZ_kFO7IsaEiuXSMrNBwzspH6imzFhbgnZa4m4eKmemiJArpNW6nSctJ-QIS-mWXwo_/w492-h343/Week+2+IA.png" width="492" /></a></div><br />Figure <!--[if supportFields]><span style='font-size:
12.0pt;font-family:"Times New Roman",serif;color:windowtext'><span
style='mso-element:field-begin'></span><span style='mso-spacerun:yes'> </span>SEQ
Figure \* ARABIC <span style='mso-element:field-separator'></span></span><![endif]--><span color="windowtext" style="font-family: "Times New Roman",serif; font-size: 12pt;"><span style="mso-no-proof: yes;">2</span></span><!--[if supportFields]><span
style='font-size:12.0pt;font-family:"Times New Roman",serif;color:windowtext'><span
style='mso-element:field-end'></span></span><![endif]--><span color="windowtext" style="font-family: "Times New Roman",serif; font-size: 12pt;"> Process states
and multi-threading<span style="mso-bidi-font-weight: bold;"><o:p></o:p></span></span><p></p>
<p align="center" class="MsoNormal" style="line-height: 200%; text-align: center;"><b style="mso-bidi-font-weight: normal;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%;">Memory Management<o:p></o:p></span></b></p>
<p class="MsoNormal" style="line-height: 200%;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-bidi-font-weight: bold;"><span style="mso-tab-count: 1;"> </span>An objective of memory management is
to provide direct access to physical memory for the operating system (OS). The
base block of memory holds the operating system instructions. The amount of
memory not consumed by the OS is then allocated using base and limit registers
to define the extent available for processes. Only the OS can load these registers,
effectively protecting the kernel and physical memory from direct access by
user programs (Silberschatz et al., 2014, p.327).<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 200%;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-bidi-font-weight: bold;"><span style="mso-tab-count: 1;"> </span>While memory management schemes
provide exclusive access to the processor, it also extends the usable area of
memory, by mapping virtual (logical) memory to physical addresses. Refer to
Figure 3 depicts the memory-management unit (MMU) using a relocation register.
The value in the relocation register binds the logical address to the physical
address. These bindings can occur at three different times according to how the
programmers write the instructions, compile time, load time, or run time.<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 200%;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-bidi-font-weight: bold;"><span style="mso-tab-count: 1;"> </span>Several methods of memory allocation
permit programs that are larger than the installed memory on a system to run.
Dynamic loading only loads portions of the program in use, calling the less
frequently used portions only when needed. Dynamic linking operates much the
same way and also allows sharing of common libraries. Swapping and page files
allow processes to be moved out of fast-access memory when other processes
require prompt attention.<o:p></o:p></span></p>
<p class="MsoNormal" style="break-after: avoid; line-height: 200%; page-break-after: avoid;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-no-proof: yes;"><v:shape id="Picture_x0020_7" o:spid="_x0000_i1027" style="height: 233.25pt; mso-wrap-style: square; visibility: visible; width: 387pt;" type="#_x0000_t75">
<v:imagedata o:title="" src="file:///C:/Users/Dean/AppData/Local/Temp/msohtmlclip1/01/clip_image003.png">
</v:imagedata></v:shape></span><o:p></o:p></p>
<p class="MsoCaption"><span color="windowtext" style="font-family: "Times New Roman",serif; font-size: 12pt;"></span></p><div class="separator" style="clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDB4JGbaqsam7b87wOhwEQGbylyQHgtd5V2mxSnkMZYsxr8j0Qs2qAnWYDn42HPt73Xm8p5L2StL03E5MSgog_Q1PhRM_R7hTS2jQMoi1BAUPHiKpX3jKFTJcLdCdXO3BfMzbY9iQqZhKN/s516/Week+3+IA.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="311" data-original-width="516" height="297" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDB4JGbaqsam7b87wOhwEQGbylyQHgtd5V2mxSnkMZYsxr8j0Qs2qAnWYDn42HPt73Xm8p5L2StL03E5MSgog_Q1PhRM_R7hTS2jQMoi1BAUPHiKpX3jKFTJcLdCdXO3BfMzbY9iQqZhKN/w493-h297/Week+3+IA.png" width="493" /></a></div><br />Figure <!--[if supportFields]><span style='font-size:
12.0pt;font-family:"Times New Roman",serif;color:windowtext'><span
style='mso-element:field-begin'></span><span style='mso-spacerun:yes'> </span>SEQ
Figure \* ARABIC <span style='mso-element:field-separator'></span></span><![endif]--><span color="windowtext" style="font-family: "Times New Roman",serif; font-size: 12pt;"><span style="mso-no-proof: yes;">3</span></span><!--[if supportFields]><span
style='font-size:12.0pt;font-family:"Times New Roman",serif;color:windowtext'><span
style='mso-element:field-end'></span></span><![endif]--><span color="windowtext" style="font-family: "Times New Roman",serif; font-size: 12pt;"> Memory management<span style="mso-bidi-font-weight: bold;"><o:p></o:p></span></span><p></p>
<p align="center" class="MsoNormal" style="line-height: 200%; text-align: center;"><b style="mso-bidi-font-weight: normal;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%;">File Management<o:p></o:p></span></b></p>
<p class="MsoNormal" style="line-height: 200%;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-bidi-font-weight: bold;"><span style="mso-tab-count: 1;"> </span>Memory is essential to the processor
for getting work done, but an operating system (OS) would soon run out of work
if it could not permanently store the work product. Building on the memory
management concepts above, file management must keep track of external storage
in many forms. A file is a logical unit of related data written to secondary
storage (Silberschatz et al., 2014, p. 478). The secondary storage can be any
number of devices designed for fast and reliable access by the I/O. The OS
determines the file system particulars, but secondary storage devices can
generally work with any system. The file structure used results from design
decisions when implementing an OS.<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 200%;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-bidi-font-weight: bold;"><span style="mso-tab-count: 1;"> </span>Files have predictable patterns that
allow OSs to manipulate them. As the amount of external storage increases, so
does the size of the directory of files. Rather than consume memory space,
directories are stored on the storage device. The directory allows searching,
creating, deleting, listing, and renaming files. As types of directories
increase in complexity, the OS also needs to traverse the file system to
perform backups. Figure 4 outlines five file structures.<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 200%;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-bidi-font-weight: bold;"><span style="mso-tab-count: 1;"> </span>The simplest directory is one level;
all files must have unique names, and all users have access. It is easy to
implement but is not scalable, and data isolation is not easy. The two-level
directory allows the separation of files per user but does not allow sharing
files between directories. A tree-structured directory extends the two-level
concept beyond a tree height of two, allowing users to create subdirectories
and organize their files in groups according to function or project.<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 200%;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-bidi-font-weight: bold;"><span style="mso-tab-count: 1;"> </span>We still cannot share files. This is
where the acyclic graph directory structure comes in. By allowing users to
share one file through different directory paths, they can collaborate without
copying files back and forth. The general graph directory structure is perhaps
the most useful because it is more flexible by allowing cycles (Geeksforgeeks,
2021). It requires garbage collection routines to remove dangling pointers when
files are deleted, which increases processing overhead.<o:p></o:p></span></p>
<p class="MsoNormal" style="break-after: avoid; line-height: 200%; page-break-after: avoid;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-no-proof: yes;"><v:shape alt="Diagram
Description automatically generated" id="Picture_x0020_8" o:spid="_x0000_i1026" style="height: 357pt; mso-wrap-style: square; visibility: visible; width: 468pt;" type="#_x0000_t75">
<v:imagedata o:title="Diagram
Description automatically generated" src="file:///C:/Users/Dean/AppData/Local/Temp/msohtmlclip1/01/clip_image004.png">
</v:imagedata></v:shape></span><o:p></o:p></p>
<p class="MsoCaption"><span color="windowtext" style="font-family: "Times New Roman",serif; font-size: 12pt;"></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8GJMuwpaFxZrRvta6q-9q-wTfXCcFIBvCDLeeJoqJgZqqp4suamt6JRiscMzz8gGNeDTawx268q2f-CkFqoDtdDs_9nRxu_vEsQiDKU7e9xwiKibKWl2AIPU1SdhF6qdQzzEsEjvkh9wK/s1143/Week+4+IA.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="871" data-original-width="1143" height="441" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8GJMuwpaFxZrRvta6q-9q-wTfXCcFIBvCDLeeJoqJgZqqp4suamt6JRiscMzz8gGNeDTawx268q2f-CkFqoDtdDs_9nRxu_vEsQiDKU7e9xwiKibKWl2AIPU1SdhF6qdQzzEsEjvkh9wK/w578-h441/Week+4+IA.png" width="578" /></a></div><br />Figure <!--[if supportFields]><span style='font-size:
12.0pt;font-family:"Times New Roman",serif;color:windowtext'><span
style='mso-element:field-begin'></span><span style='mso-spacerun:yes'> </span>SEQ
Figure \* ARABIC <span style='mso-element:field-separator'></span></span><![endif]--><span color="windowtext" style="font-family: "Times New Roman",serif; font-size: 12pt;"><span style="mso-no-proof: yes;">4</span></span><!--[if supportFields]><span
style='font-size:12.0pt;font-family:"Times New Roman",serif;color:windowtext'><span
style='mso-element:field-end'></span></span><![endif]--><span color="windowtext" style="font-family: "Times New Roman",serif; font-size: 12pt;"> Five examples of
file structures<span style="mso-bidi-font-weight: bold;"><o:p></o:p></span></span><p></p>
<p class="MsoNormal" style="line-height: 200%;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-bidi-font-weight: bold;"><span style="mso-tab-count: 1;"> </span>As software and hardware
standardization increased, so did the number of different types of I/O devices.
An OS must have device drivers for uniform access to the myriad devices on the
market (Silberschatz et al., 2014, p. 565). We typically think of keyboards and
pointing devices when we think about I/O, but there are many others.
Smartphones have cameras, GPS receivers, accelerometers, and of course, the
ubiquitous multi-touch screen that performs double duty as input and output.
These devices must participate on a common bus to work with different
processing platforms and memory configurations.<o:p></o:p></span></p>
<p align="center" class="MsoNormal" style="line-height: 200%; text-align: center;"><b style="mso-bidi-font-weight: normal;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%;">Protection and Security<o:p></o:p></span></b></p>
<p class="MsoNormal" style="line-height: 200%;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-bidi-font-weight: bold;"><span style="mso-tab-count: 1;"> </span>Domain protection principles are
based on the goals of secure, private, and reliable processing. Operating
system protection design only protects data and processes as far as it is
enforceable by built-in mechanisms. A computer system consists of processes and
objects, and processes should only have access to resources it needs to
complete its work (Silberschatz et al., 2014, section 13.3). To achieve secure
systems, the additional factors of physical access and user interface can lead
to accidental or malicious data corruption or theft. An access matrix limits
access to objects to authorized access by users and processes. It also
restricts cross access to enforce privacy. An object-to-authorized use
relationship works on the principle of least privilege.<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 200%;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-bidi-font-weight: bold;"><span> <span> </span></span>Figure
5 outlines domains represented by concentric circles with increasing privileges
nearer the kernel. The access list shows how a shared workstation might
implement <b>protection</b>. The grey rectangle represents <b>security</b>.<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 200%;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-bidi-font-weight: bold;"><span> <span> </span> </span>Language-based
protection extends the responsibility of the designers of operating systems to
the programmers of applications. Hardware designs provide various protection
strategies for implementing at the language level, and the language offers
additional protections using data isolation principles of object-oriented
design (OOD).<o:p></o:p></span></p>
<p class="MsoNormal" style="break-after: avoid; line-height: 200%; page-break-after: avoid;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%; mso-no-proof: yes;"><v:shape alt="Diagram
Description automatically generated" id="Picture_x0020_9" o:spid="_x0000_i1025" style="height: 401.25pt; mso-wrap-style: square; visibility: visible; width: 448.5pt;" type="#_x0000_t75">
<v:imagedata o:title="Diagram
Description automatically generated" src="file:///C:/Users/Dean/AppData/Local/Temp/msohtmlclip1/01/clip_image005.png">
</v:imagedata></v:shape></span><o:p></o:p></p>
<p class="MsoCaption"><span color="windowtext" style="font-family: "Times New Roman",serif; font-size: 12pt;"></span></p><div class="separator" style="clear: both; text-align: left;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-cqLXJVNa0oL1e9spMxD445wvRbiFihRITPuw9J5kimZO5zmTwcRry_rCEZbK_jdTIpYsrCbSKuvXChblPX60S0gDj0YDnF9e-u29AnfSMV8ZK4jX2qfhzOhT23IVWk-2o-6L-TGTBwkG/s598/Week+5+IA.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="535" data-original-width="598" height="438" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-cqLXJVNa0oL1e9spMxD445wvRbiFihRITPuw9J5kimZO5zmTwcRry_rCEZbK_jdTIpYsrCbSKuvXChblPX60S0gDj0YDnF9e-u29AnfSMV8ZK4jX2qfhzOhT23IVWk-2o-6L-TGTBwkG/w490-h438/Week+5+IA.png" width="490" /></a></div><br />Figure <!--[if supportFields]><span style='font-size:
12.0pt;font-family:"Times New Roman",serif;color:windowtext'><span
style='mso-element:field-begin'></span><span style='mso-spacerun:yes'> </span>SEQ
Figure \* ARABIC <span style='mso-element:field-separator'></span></span><![endif]--><span color="windowtext" style="font-family: "Times New Roman",serif; font-size: 12pt;"><span style="mso-no-proof: yes;">5</span></span><!--[if supportFields]><span
style='font-size:12.0pt;font-family:"Times New Roman",serif;color:windowtext'><span
style='mso-element:field-end'></span></span><![endif]--><span color="windowtext" style="font-family: "Times New Roman",serif; font-size: 12pt;"> Protection and
security overview</span><span style="font-family: "Times New Roman",serif; font-size: 12pt;"><span style="mso-tab-count: 1;"> </span></span><div><span style="font-family: "Times New Roman",serif; font-size: 12pt;"><br /></span></div><div style="text-align: center;"><span style="font-family: "Times New Roman",serif; font-size: 12pt;"><b>Conclusion</b></span></div><div style="text-align: center;"><span style="font-family: "Times New Roman",serif; font-size: 12pt;"><b><br /></b></span></div><div><span style="font-family: "Times New Roman",serif; font-size: 12pt;"><p class="MsoNormal" style="line-height: 200%;"><span style="font-size: 12pt; line-height: 200%;"> <span> </span><span> </span>The concepts shared here are my interpretations of the
content I read, researched, and discussed with my classmates during the past
five weeks. My increased understanding of operating systems and the many types
of hardware they control whets my curiosity to learn more about customizing
operating systems to specific uses. As I continue learning about cyber and data
security, I will use this knowledge guide experiments with dedicated purpose
machines to increase my effectiveness as a future cyber warrior.<o:p></o:p></span></p>
</span><span color="windowtext" style="font-family: "Times New Roman",serif; font-size: 12pt; mso-bidi-font-weight: bold;"><o:p></o:p></span><p></p>
<p align="center" class="MsoNormal" style="line-height: 200%; text-align: center;"><b><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%;">References<o:p></o:p></span></b></p>
<p class="MsoNormal" style="line-height: 200%; margin-left: 0.5in; text-indent: -0.5in;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%;">Brais,
H. (2015, October 29). <i>What is progress and bounded waiting in critical
section?</i> Stackoverflow. </span><a href="https://stackoverflow.com/questions/33143779/what-is-progress-and-bounded-waiting-in-critical-section#33409854"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%;">https://stackoverflow.com/questions/33143779/what-is-progress-and-bounded-waiting-in-critical-section#33409854</span></a><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%;"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 200%; margin-left: 0.5in; text-indent: -0.5in;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%;">Geeksforgeeks.
(2021, February 3). <i>Structures of directory in operating system</i>. </span><a href="https://www.geeksforgeeks.org/structures-of-directory-in-operating-system/"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%;">https://www.geeksforgeeks.org/structures-of-directory-in-operating-system/</span></a><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%;"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 200%; margin-left: 0.5in; text-indent: -0.5in;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%;">Silberschatz,
A., Galvin, P., & Gagne, G. (2014). <i>Operating Systems Concepts
Essentials: 2nd Edition</i>. </span><a href="https://redshelf.com/" target="_blank"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%;">https://redshelf.com/</span></a><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%;"><o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: 200%; margin-left: 0.5in; text-indent: -0.5in;"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%;">Singh,
T. (2016) <i>A comparative study of disk scheduling algorithms</i>. IJCST. </span><a href="http://www.ijcstjournal.org/volume-4/issue-1/IJCST-V4I1P6.pdf"><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%;">http://www.ijcstjournal.org/volume-4/issue-1/IJCST-V4I1P6.pdf</span></a><span style="font-family: "Times New Roman",serif; font-size: 12pt; line-height: 200%;"><o:p></o:p></span></p></div>Arizona Deanhttp://www.blogger.com/profile/04079156396215404866noreply@blogger.com0tag:blogger.com,1999:blog-7089694328193253514.post-74319968868641910442020-07-23T17:40:00.001-07:002020-07-27T15:37:52.624-07:00Newbie to Newbie Blog Part TwoIn my last post four weeks ago, I shared some advice about how to get up and running for coding with Java. I invited you to review some of the sources I used so you could start practicing. If you didn't have time, I understand, it's a lot of reading and experimenting. I have less hair now but more knowledge about algorithmic design in programming. Once again, I invite you to benefit from my struggles to help you along your way.<br />
<br />
As you learn more about the syntax of Java and the concepts of object-oriented programming (OOP) you will appreciate the importance of data structures, and how to choose one over another when solving a problem. At its simplest, a data structure can be a list. If you need that list to be an ordered list it becomes slightly more complex. An even more complex structure would be an array containing arrays. It will be your responsibility as a programmer to choose the best structure for storing and manipulating data.<br />
<br />
Every choice you make is a trade-off between time and space complexity. For example, you have a set of data that is accessed frequently by a search algorithm. As the size of the dataset increases, the space it consumes in memory grows, and the time it takes to search it increases. Choosing an implementation of a list that is sequential is better for a large data set because a binary search algorithm can locate values much faster. The trade-off is in the resources it takes to order the list as new elements are added, changed, or removed. The larger the dataset and the more often it is accessed, the greater the benefit of a sequential list.<br />
<br />
The best tool for making choices in your design is <b>Big 0</b> notation. Learn this first, and learn it well. <a href="https://www.cs.utexas.edu/users/djimenez/utsa/cs1723/lecture2.html" target="_blank">Here</a> is an excellent resource for learning how to apply it in your design choices. After you cognate on that, have a look at <a href="https://www.leda-tutorial.org/en/official/ch02s02s03.html" target="_blank">this</a> and try some of the exercises to get a good handle on these concepts.Arizona Deanhttp://www.blogger.com/profile/04079156396215404866noreply@blogger.com0tag:blogger.com,1999:blog-7089694328193253514.post-58317635587322941362020-06-25T16:33:00.001-07:002020-07-27T15:43:10.154-07:00Object-oriented Programming for Newbies<div class="MsoNormal" style="background: white; line-height: normal; margin-left: 0.75pt; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto;">
<span style="font-family: inherit;">If you are new to object-oriented programming (OOP) like I am, you may find it helpful to read what I just learned through reading a few articles about it. For a programming language to qualify as OOP, it must include functionalities based on four principles.</span><br /><span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">First, there is encapsulation, which is kind of what it sounds like. We take an object and wrap it up so its inner workings are not visible so that we can control access.</span><br /><span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Next, there is data abstraction, which is a fancy way to say, model, or template. If I were to describe to you a garden hose without showing it to you, I would tell you its color, diameter, length, material, and the type of fittings on either end. You would have a general idea of what class of hose I am describing and know if it can do the job you might have for it.</span><br /><span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">A third principle is inheritance. If my garden hose were a programming object, I could create copies of it, then add additional descriptions that correspond with a similar real-world object, like how long the warranty is, or what temperature range it can handle. I could change the default color inherited to another color.</span><br /><span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">And finally, we have polymorphism. Who comes up with this stuff? It just means an object has one name but can run in different forms. It is very complex, though, and I don’t quite understand it yet. </span><br /><span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">I’ll be writing some basic programs in Java in the next few weeks, so I expect to have a better explanation for you soon. For now, I’ll provide links to resources I’ve been using to get up to speed.</span><br /><span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Starting with the basics, here’s an excellent tutorial. When you’re ready to learn from the developers of Java, here’s the definitive reference. And here’s an older article, but still worthwhile, relating OOP concepts in laymen terms.</span><br /><span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Thanks for reading.</span></div>
Arizona Deanhttp://www.blogger.com/profile/04079156396215404866noreply@blogger.com0tag:blogger.com,1999:blog-7089694328193253514.post-75762806391995008772019-08-25T16:22:00.002-07:002020-06-24T14:03:13.760-07:00Internet SafetyInternet Safety is the new Neighborhood Watch. Near the end of the 1960s, crime rates rose in many neighborhoods across the United States. The National Sheriff’s Association created the National Neighborhood Watch Program in 1972 to involve citizens in protecting their neighborhoods (NNW, n.d., para 2). The Neighborhood Watch has since become part of our culture. As the internet grew, so too did its potential for harming groups and individuals. Internet groupings are our modern neighborhoods. How do we keep them safe?<br />
<a name='more'></a><br />
<br />
A Google search for “internet safety” returns more than four million results. The recurring theme of those search results is, how to keep our children safe from online predation. Providers of training help adults teach children how to be safe online. Dian Schaffhauser wrote an article this year about a program in Texas that is teaching parents and schools how to keep their children out of online trouble (2019). Conversations associated with the term “internet safety” do not address the more significant problem. Most adults do not practice what they are presumably teaching our youth. Adults expect to be kept safe by the providers of their internet content.<br />
<br />
Cybersecurity helps to keep adults safe from online perils. The term implies safety, but its methods are not accessible to the computing public. Standard business practice is to either employ cybersecurity staff or outsource the functions to protect information capital. Expanding legislation for data security places more and more responsibility on business to keep their customers’ data safe and private. Corporations implementing cybersecurity solutions are not enough. We need to expand the conversation around Internet Safety to include elements of cybersecurity. Imagine virtual neighborhoods looking out for each other to fill the gap between Internet Safety (its current scope) and cybersecurity.<br />
<br />
Everyone should learn how to access all the internet has to offer safely. Here is a primer for your Internet Safety awareness journey.<br />
<br />
•<span style="white-space: pre;"> </span>Computer hardware, operating systems, programming languages, and software applications are fundamental components of information technology. Networks enable these components to interoperate. The exchange of information between systems and across devices must be moderated to prevent data losses and unauthorized access. If you understand these basics, you are safer already. If not, there are many sources besides my blog to learn about them. I encourage you to do so.<br />
<br />
•<span style="white-space: pre;"> </span>It is interesting to know the history of computing, but not a prerequisite to Internet Safety. Dishonesty predates computers so we should not be surprised that scams and abuse are prevalent online. In the 1990s the world was optimistic about the internet. Four decades of hard experience drove the change from optimism to cautious enthusiasm. The results of criminal behavior are the inherent costs of the benefits we derive from computer science and information technology. Learning and practicing Internet Safety is how we can mitigate those costs.<br />
<br />
•<span style="white-space: pre;"> </span>Modern computing systems have increased processing power, storage, and memory, allowing background processes to run unnoticed. Antivirus software used to tax a computer system’s resources so much it resulted in people not using it. Antivirus software can now do its job with no reduction in computer performance. Keeping your antivirus software up-to-date is the single most effective way to keep your computer safe on the internet.<br />
<br />
•<span style="white-space: pre;"> </span>Computer software vendors use programming languages to design applications for protecting computer systems. They use different methods of monitoring program execution to prevent malicious code from interfering with safe computing. Some of these methods are part of the operating system and do not require you to know about them or how they work. A lot of time and effort go into keeping you safe from previously identified threats. Learning Internet Safety will increase your vigilance and reduce the chances of damage to your system.<br />
<br />
•<span style="white-space: pre;"> </span>Application software has become more stable and safe over time. When problems occur, they are addressed and cataloged as guidance for future revisions. Office productivity software is used to create and disseminate training materials to promote safe computing.<br />
<br />
•<span style="white-space: pre;"> </span>The storage of information in databases has become an economic engine for advertising, making information collected from you valuable when analyzed on a massive scale. The management of that collected data is becoming more regulated, but legislation cannot keep up with innovation. To stay safe on the internet, be aware of what information you share and with whom. Learn about <a href="https://teachprivacy.com/10-reasons-privacy-matters/" target="_blank">data privacy</a> and manage your online presence carefully.<br />
<br />
•<span style="white-space: pre;"> </span>Known methods of attack are prevented by network devices designed to block access by malicious code or the identified behaviors of bad actors. Leveraging the capabilities of network hardware with active filtering improves Internet Safety. Cisco makes network equipment and provides dedicated applications such as OpenDNS Family Shield and OpenDNS Home to consumers at no cost (Cisco, n.d.).<br />
<br />
If you learn one new thing from reading this article, then it will have been worth the time it took to research and write it. Encourage your friends and family to think about Internet Safety in the broader context of online communities watching out for each other. Be safe.<br />
<br />
<div style="text-align: center;">
<b>References</b></div>
Cisco. (n.d.). opendns.org. Home internet security. Retrieved from www.opendns.com/home-internet-security/<br />
<br />
National Neighborhood Watch. (n.d.). nnw.org. Our history. Retrieved from www.nnw.org/our-history/<br />
<br />
SCHAFFHAUSER, D. (2019). Helping Parents LEARN TECH Too. T H E Journal, 46(2), 26. Retrieved from http://search.ebscohost.com.proxy-library.ashford.edu/login.aspx?direct=true&AuthType=ip,cpid&custid=s8856897&db=f5h&AN=136251971&site=ehost-live<br />
<div>
<br /></div>
Arizona Deanhttp://www.blogger.com/profile/04079156396215404866noreply@blogger.com0tag:blogger.com,1999:blog-7089694328193253514.post-34383988529338068372019-08-18T17:11:00.000-07:002019-08-26T15:51:11.380-07:00Network SecurityInformation and system security are important to individuals because so much personal and financial information resides on information systems that are inherently vulnerable to compromise. Information and system security are important to organizations for the same reason, but also important because the success of developed countries depends on the secure operation of systems that support utilities, finances, and government (Zwass, 2016, Information Systems Security). Countries depend on organizations, and organizations depend on individuals. All depend on information systems to manage and control activities in the modern economy.<br />
<a name='more'></a><br />
There are many ways to compromise the network components that information systems depend on to inter-operate. Two such ways use the Ping command to attack a networked computer. The first method is called command injection, where a system vulnerability in web servers and routers allows a second command after a terminated ping request (CTF 101, n.d.). A skilled attacker can elevate permissions and execute additional code. The second method is a Denial-of-Service (DoS) attack. A single machine targets a web server with multiple ping requests to overload the server (Cloudflare, n.d.). This prevents users from accessing server content, hence the name, Denial-of-Service.<br />
<br />
<span style="white-space: pre;"></span>Computer viruses are another way to compromise systems. A virus is a self-replicating piece of computer code designed to harm or hinder a computer (Torres, G, 2018). Computers are vulnerable to viruses because they must access data from external sources to get work done or provide entertainment. Typical symptoms of having a virus is a slow running computer, programs that open themselves, or pop-up warnings for conditions that do not exist. Viruses can inflict damage by deleting, corrupting, or encrypting files. To protect a system against viruses, install a reputable anti-virus application, and keep its virus definitions up-to-date. Be careful accessing content on websites or external storage; think before you click.<br />
<br />
<span style="white-space: pre;"></span>Social engineering is the least understood and has the most potential for damage because it manipulates the most vulnerable component of an information system, the interface between the input and the output; the human. The best anti-virus application cannot protect a system from its operator. Bad actors know this and use every trick they can think of to fool a targeted victim.<br />
<br />
<span style="white-space: pre;"></span>A well-known example of social engineering is a telephone call from Microsoft support. An attacker convinces an unsuspecting individual that something is wrong with their system and asks to establish remote desktop access for troubleshooting. If access is allowed, the attacker installs malicious software masquerading as a diagnostic tool. This tool spoofs problems which the attacker offers to fix for a fee. The individual is damaged financially and is embarrassed when they learn they were tricked. Their system is no longer trustworthy because of the malicious software installed and will need professional service or replacement. Organizations can protect systems from social engineering by requiring their employees to complete cybersecurity training. These employees, in turn, should share lessons learned with their friends and loved ones.<br />
<br />
<span style="white-space: pre;"></span>Information and system security are important to individuals and organizations in the modern economy. Cybersecurity encompasses information and system security. Organizations have a responsibility to keep us safe by investing in cybersecurity and training. Individuals will benefit from learning more about cybersecurity, and that will result in safer computing for all.<br />
<br />
<b>References</b><br />
Capture The Flag 101. (n.d.). What is command injection?. CTF 101. Retrieved from <a href="http://ctf101.org/web-exploitation/command-injection/what-is-command-injection/">ctf101.org/web-exploitation/command-injection/what-is-command-injection/</a><br />
Cloudflare, Inc. (n.d.) Denial-of-service. Retrieved from <a href="http://www.cloudflare.com/learning/ddos/glossary/denial-of-service/">www.cloudflare.com/learning/ddos/glossary/denial-of-service/</a><br />
Torres, G. (2018 December 18) What is a computer virus. AVG. Retrieved from <a href="http://www.avg.com/en/signal/what-is-a-computer-virus/">www.avg.com/en/signal/what-is-a-computer-virus/</a><br />
Zwass, m. (2016 February 10). Information security. Britannica. Retrieved from <a href="http://www.britannica.com/topic/information-system/Information-system-infrastructure-and-architecture/">www.britannica.com/topic/information-system/Information-system-infrastructure-and-architecture/</a><br />
<div>
<br /></div>
Arizona Deanhttp://www.blogger.com/profile/04079156396215404866noreply@blogger.com0tag:blogger.com,1999:blog-7089694328193253514.post-46729636295920398982019-08-15T16:48:00.000-07:002019-08-26T19:46:31.294-07:00Computers in the WorkplaceI work for a natural gas company. When I came to work here, I was surprised to learn that local natural gas providers are transportation companies. We build and maintain infrastructure for transporting gas from our national provider to each of our customers. We bill for the amount of gas used, yet do not sell the gas itself. Technically, we charge for the transportation of natural gas. Computers are integral to the way we do business.<br />
<a name='more'></a><br />
We depend on computers at every level of our business. Every employee is computer literate, with skills ranging from minimal (login, mouse/keyboard, enter data) to expert (computer-assisted design, geographical mapping, call center, help desk, cybersecurity). I think every large company will have a similar structure, and all employees have to be minimally skilled on a computer. Since I am most familiar with employee roles in my department, I will discuss the functions of computers in my department.<br />
<br />
My department is technical services. <br />
<ul>
<li>Measurement Technicians maintain our distribution pipelines. They document their daily activities on a Panasonic Toughbook using a custom application written to comply with the Department of Transportation guidelines. A measurement technician must have at least minimal computer skills. </li>
<li>Measurement Specialists have the same skillset as technicians, but also install and monitor remote telemetry using applications that communicate with electronic instruments. They need to understand serial port communications and CDMA modems. A measurement specialist has intermediate computer skills. </li>
<li>Communication Specialists program and electronic repair instruments, interrogate instruments for recorded data and maintain archives of distribution system performance. A communication specialist has expert computer skills. </li>
</ul>
In the last five years, the technology my company uses changed from 2G to 3G and is now moving toward 4G communications for our mobile workforce computers, telemetry modems, and GPS fleet tracking. Last year we upgraded all phones from the flip-style to iPhones - more computers.<br />
<br />
In the next ten years, tablets will replace most Toughbooks. Apps on those tablets will replace the DOS-based compliance applications now running on Toughbooks. A small percentage of the workforce will still require a Toughbook for fieldwork on instruments that have serial communications (our instruments have a long lifecycle). Next-generation mobile radio systems will incorporate smartphone features for a private communication network we can count on in the event of a large scale disaster. The radio system will also support data transfer for telemetry sites removing the need to depend on a cell provider.Arizona Deanhttp://www.blogger.com/profile/04079156396215404866noreply@blogger.com0tag:blogger.com,1999:blog-7089694328193253514.post-14959752452821260342019-08-08T12:49:00.000-07:002019-08-26T16:04:05.534-07:00Traveling Through a NetworkA packet travels through a data network much like a physical package travels to a destination. A router uses the address of a packet to determine the best route to the next stop (another router). A shipping company uses the address of a physical package’s address to determine the best mode of transport, e.g., truck, ship, or plane. In both cases, there is always more than one path to a destination.<br /><a name='more'></a><br />To a request a page from a website, a packet transmitting the request must leave the local network, travel through an internet service provider (ISP), and on up the chain to the web server that contains the page requested. Using ping can tell us if the server hosting the page is there. Using tracert can show us the path to the server by sending a series of packets. Each subsequent packet has a time to live TTL that was one higher than the previous packet. Each hop on the path decrements the TTL, so each router on the way sends a dropped packet response (How-To Geek, 2019).<br /><br />The three ping results for Google.com, Brazil, and China show average round trip times 46ms, 249ms, and 289ms, respectively. The increasing trip times for countries farther away indicates the farther a destination is away geographically, the longer the travel time.<div style="background-color: white; color: #2d3b45; font-family: Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: 12px; margin-top: 12px;">
<img alt="PingSnips2.PNG" data-api-endpoint="https://ashford.instructure.com/api/v1/users/179546/files/9884205" data-api-returntype="File" height="546" src="https://ashford.instructure.com/users/179546/files/9884205/preview?verifier=QBkeP4lCxd6dcC9YlhavMXESyhhTb7rGQyHQJEOf" style="border: 0px; height: auto; margin-bottom: 0px; max-width: 100%; vertical-align: middle;" width="450" /></div>
<div style="margin-bottom: 12px; margin-top: 12px;">
<br />
The traceroute results confirm this by showing there are more hops to destinations farther away.<br /><span style="color: #2d3b45; font-family: lato, helvetica neue, helvetica, arial, sans-serif;"><span style="background-color: white; border-color: initial; border-image: initial; border-style: initial; height: auto;"><img alt="tracertGoogle.PNG" data-api-endpoint="https://ashford.instructure.com/api/v1/users/179546/files/9884209" data-api-returntype="File" height="293" src="https://ashford.instructure.com/users/179546/files/9884209/preview?verifier=YJPFlKsYI8F27JR1sRhQPNo5sJ0xKgyoT9E1qKwo" style="border: 0px; height: auto; margin-bottom: 0px; max-width: 100%; vertical-align: middle;" width="450" /></span></span></div>
<div style="background-color: white; color: #2d3b45; font-family: Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: 12px; margin-top: 12px;">
<img alt="tracertBrazil.PNG" data-api-endpoint="https://ashford.instructure.com/api/v1/users/179546/files/9884215" data-api-returntype="File" height="266" src="https://ashford.instructure.com/users/179546/files/9884215/preview?verifier=YGffxWJ3hlTbAleAW1yGcARSYfjAlqvTjENVSdY0" style="border: 0px; height: auto; margin-bottom: 0px; max-width: 100%; vertical-align: middle;" width="450" /></div>
<div style="background-color: white; color: #2d3b45; font-family: Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: 12px; margin-top: 12px;">
<img alt="tracertChina.PNG" data-api-endpoint="https://ashford.instructure.com/api/v1/users/179546/files/9884218" data-api-returntype="File" height="338" src="https://ashford.instructure.com/users/179546/files/9884218/preview?verifier=AzBIoIH3leFKesTh5LgWXlSB0wqEBHIf9GGNOPkM" style="border: 0px; height: auto; margin-bottom: 0px; max-width: 100%; vertical-align: middle;" width="450" /></div>
The ping command can be used to see if a server is answering at all. There are many reasons why a server might not respond, but we can determine yes or no with a ping request. If the remote server does not answer, the server could be down, or the network could be too busy at the time of the request. A traceroute command can show if a router on the path is not configured correctly (Microsoft 2019) display where delays are in the path. Some routers on the path may be configured to ignore a tracert request, so no useful information is gained for that hop.<br /><br /><div style="text-align: center;">
References:</div>
<div style="text-align: center;">
<br /></div>
How-To Geek. (2019). How to use traceroute to identify network problems. Retrieved from www.howtogeek.com/134132/how-to-use-traceroute-to-identify-network-problems/<br />Microsoft. (2019). Microsoft support. Retrieved from support.microsoft.com/en-us/help/314868/how-to-use-tracert-to-troubleshoot-tcp-ip-problems-in-windows/Arizona Deanhttp://www.blogger.com/profile/04079156396215404866noreply@blogger.com0tag:blogger.com,1999:blog-7089694328193253514.post-7986755171032427202019-08-05T12:45:00.000-07:002019-08-25T16:28:28.588-07:00The Role of Applications<div style="text-align: center;">
<div style="text-align: left;">
<b>Introduction</b></div>
</div>
<b><br /></b>My experiences creating a journal entry using a word processor, calculating percentages in a spreadsheet, developing a presentation, and manipulating a database were more challenging than I expected. I am familiar with all four of these applications, and most of my time was spent decoding the instructions to make sure I satisfied the assignment requirements. Each application is appropriate in different situations. Skills using each are valuable in both professional and personal pursuits.<br />
<a name='more'></a><br />
<br />
<b>Word</b><br />
<br />
The word processor Microsoft Word is best suited for producing documents that will be printed on paper or viewed online as scanned pages. I used it for this assignment to create a descriptive list of ten tasks I completed in one day, and I am using it to write this essay. The functions I used were formatting text and fonts to create an easy to read numbered list. The ease of use is taken much for granted these days. My first word processor was WordPerfect 5.1. It had a preview option that saved paper by letting you see what the pages would look like before printing. The next version had a “what you see is what you get” (WYSIWYG) graphical component that modern word processors now run natively.<br />
<br />
<b>Excel</b><br />
<br />
The spreadsheet program Microsoft Excel handles number well. Word can create tables, but math functions are limited, and the manipulation of data is difficult. I used Excel to complete the exercise of calculating percentages with formulae, sorting rows according to the contents of cells, and creating a pie chart. I do not remember when I first learned about spreadsheets (perhaps Lotus 123), but I use Excel every day at work. I am always looking for new ways to use Excel. Several months ago I learned to use the Absolute Reference $ and used it in this exercise to quickly copy the percentage formula down using Ctrl D.<br />
<br />
<b>PowerPoint</b><br />
<br />
The presentation software Microsoft PowerPoint is well suited for use as a visual aid while presenting to a live audience. I created a visual tour of my day at work for giving a short presentation to an audience interested in what I do for a living. PowerPoint is also useful for creating training slides. I have used it at work to document modem activation procedures with our telecommunications provider. I agree with Hans Rosling that physical props (analog) on stage can be more effective than a PowerPoint (digital) presentation (Rosling, 2010). I have presented several times in professional situations, and I prefer real-world demonstrations because I like using hands-on technology to share what I know.<br />
<br />
<b>Access</b><br />
<br />
The relational database software application Microsoft Access is useful for storing data in structured tables. The assignment provided a template for experimenting with the functions of a database using two related tables. I entered task data and performed sorts according to priority. This application is appropriate for storing large amounts of data that need validation for input and can be queried to find useful correlations of the data (Vahid & Lysecky, 2017, sect. 5.4). Excel has many of the functions of a database but lacks a robust set of commands and a secure method of storage. Access would be a good choice for maintaining a large mailing list.<br />
<br />
<b>Recommendations</b><br />
<br />
For documenting the journal of a day, my recommendation depends on the end-use of the document. Word is appropriate if publishing a list and short explanation of each task is all that is needed. PowerPoint would be a better application to convey a sense of how each task looks and feels. Access can include the document created with Word, so I recommend it for inclusion on a web site or blog.<br />
<br />
<b>Conclusion</b><br />
<br />
<span style="white-space: pre;">T</span>he functions of each determine the role of the four applications discussed here. Word’s ability to format text is best for creating printable content. Excel is best for crunching numbers and creating charts. PowerPoint’s ability to incorporate graphics and animation is great for presenting to an audience and creating training aids. Access stores data in a structure that is useful for making sense of the data. Having the knowledge and skill to use each application effectively is valuable.<br />
<br />
<b>References</b><br />
<br />
Rosling, H. (2010, June). Global population growth, box by box. [Video file]. Retrieved from <a href="http://www.ted.com/talks/hans_rosling_on_global_population_growth?">www.ted.com/talks/hans_rosling_on_global_population_growth?</a>/<br />
Vahid, F., & Lysecky, S. (2017). Computing technology for all. Retrieved from <a href="http://zybooks.zyante.com/">zybooks.zyante.com</a>/<br />
<div>
<br /></div>
Arizona Deanhttp://www.blogger.com/profile/04079156396215404866noreply@blogger.com0tag:blogger.com,1999:blog-7089694328193253514.post-16856076598114423192019-08-04T12:32:00.000-07:002019-08-26T16:08:22.687-07:00Review of the iTunes Music AppThe Music app on an Apple device is my answer to the problem of managing an extensive music collection. It is dependent on iTunes that can run on an Apple or a Windows-based computer. You can visit Apple’s website for learning to use iTunes, and I will not cover that here. The Music app can also stream radio stations and buy music from Apple. I have the buy music option turned off on my device.<div>
<br />I began ripping (converting wav files to mp3 files) music files from my compact disc collection in 1998. I have accumulated 67 Gigabytes (GB) of music files since then, almost 12,000 songs. It was only last year that I acquired a device with enough storage to fit all those files; an iPhone 8 with 256 GB of storage. I have tried many music managers over the years such as Winamp, MuzicMan, MusicMonkey, MusicBee, and others I no longer remember. They were all PC based, and it was always a challenge moving an extensive library of music from one PC to another. In that environment, iTunes was never my first choice, but it emerged the winner here because of the portability of the iPhone.<div style="background-color: white; color: #444444; font-family: Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: 12px; margin-top: 12px;">
<a name='more'></a></div>
<div>
<br /></div>
<b>Usability</b><br /><br />You can use the Music app easily because it is preinstalled on Apple devices. You do not have to go to the App Store and download anything. Tap the Music icon, and it opens. <div style="background-color: white; color: #444444; font-family: Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: 12px; margin-top: 12px;">
<img alt="IMG_0880.JPEG" height="711" src="https://ashford.instructure.com/users/179546/files/9798590/preview?verifier=F19EcH1ORRTSam9ObhnMSBV3czlx8KdwhAR9zh2A" style="border: 0px; height: auto; max-width: 100%; vertical-align: middle;" width="400" /></div>
<div style="background-color: white; color: #444444; font-family: Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: 12px; margin-top: 12px;">
<br /></div>
If you do not have any music stored on your device, you can tap the Radio option at the bottom center of your screen. Choose a station to begin streaming music.<div style="background-color: white; color: #444444; font-family: Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: 12px; margin-top: 12px;">
<img alt="IMG_0881.jpeg" height="711" src="https://ashford.instructure.com/users/179546/files/9798600/preview?verifier=qFYsoh7PgKtTY43uDpmIqDdg5fsa6drkPqGyDQsR" style="border: 0px; height: auto; max-width: 100%; vertical-align: middle;" width="400" /></div>
<div style="background-color: white; color: #444444; font-family: Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: 12px; margin-top: 12px;">
<br /></div>
There is a search option for finding radio stations or searching through your music. The screenshot below showed the top three results when I searched for Gold. To search radio stations tap the radio button.<div style="background-color: white; color: #444444; font-family: Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: 12px; margin-top: 12px;">
<img alt="IMG_0879.PNG" height="711" src="https://ashford.instructure.com/users/179546/files/9798622/preview?verifier=DAVEDq741QaWqqDuwkGyML66uePIeeV9yTTEWw9S" style="border: 0px; height: auto; max-width: 100%; vertical-align: middle;" width="400" /></div>
<br /><b>Design</b><br /><br />Below is the main screen when a song is playing. It shows artwork for the song that is playing and has controls for playback. There is an active track progress slider showing time elapsed and time left and allows you to jump to any part of the song. The title of the song is displayed in black and the artist and album information in red. If the title is too long, it will scroll across the screen. There are previous, play/pause, and next icons that are very intuitive. A volume slider below that completes the playback controls. If you tap the ellipsis (three red dots) a pop up appears with more options, one of which allows you to “love” the song to add it to your favorites list. Tapping the red triangle intersecting three concentric circles allows you to choose a Bluetooth device for playback.<div style="background-color: white; color: #444444; font-family: Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: 12px; margin-top: 12px;">
<img alt="IMG_0876.PNG" height="711" src="https://ashford.instructure.com/users/179546/files/9798676/preview?verifier=6YH4vhn3mUHctHnvDYzKtoI5ej5l64f6tNUZ5lsg" style="border: 0px; height: auto; max-width: 100%; vertical-align: middle;" width="400" /></div>
<b>Functionality</b><br /><br />The Music app has limited functionality for creating playlists on the fly or rating songs. Both can be done in iTunes. The function I like best is shuffle play. On the search screen, I tap songs which finds all songs in my collection. Then I tap shuffle, and I have my own private radio station with no commercials.<div style="background-color: white; color: #444444; font-family: Lato, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; margin-bottom: 12px; margin-top: 12px;">
<img alt="IMG_0877.PNG" height="711" src="https://ashford.instructure.com/users/179546/files/9798611/preview?verifier=RBQDaWwzlGIhxCqCpTgqBonSOQcSfwr8fl2aEBok" style="border: 0px; height: auto; max-width: 100%; vertical-align: middle;" width="400" /></div>
<b>Recommendations for Improvement</b></div>
<div>
<b><br /></b>Make it easier to rate a song while it plays. All you can do in the app is love, dislike, or delete. <br />Make the recently played playlist dynamic. The recently played songs do not appear until after the device is synced with iTunes. <br />Provide a more natural method to add songs to the current playlist. If you do not do it just right, it will wipe out your playlist.<br /><br /><b>The Takeaway</b><br /><br />If you are like me in wanting to maintain your own music collection for those occasions when there is no internet connection or your streaming service does not have the song you absolutely must hear, give the Music app a try. If you are already familiar with Apple products, it will be easy and rewarding. If not, you may struggle to learn the iTunes program, but I think the struggle will be worth it.</div>
Arizona Deanhttp://www.blogger.com/profile/04079156396215404866noreply@blogger.com0tag:blogger.com,1999:blog-7089694328193253514.post-5237825781272611932019-07-29T12:26:00.000-07:002019-08-27T04:39:32.511-07:00Programming Languages Reflection<div style="text-align: center;">
<b>Programming Languages Reflection</b></div>
<b><br /></b>
<b>Introduction</b><br />
<b><br /></b>This post describes my experience learning to use an online service called Scratch (Scratch, n.d.) to create a program. Difficulties encountered and how I overcame them as well as insights gained are discussed. With many high-level programming languages to choose from, Scratch offers an economical way to learn concepts common to all of them.<br />
<a name='more'></a><br />
<br />
<b>My Experience</b><br />
<br />
My experience learning Scratch was unexpectedly difficult. I created an account and began exploring the concepts presented on the site. At first, it was fun watching some tutorials and experimenting with backdrops and sprites. Then I hit a creative block. I could not think of anything I wanted to say using these tools.<br />
<br />
Before beginning this assignment, I read the material and completed the participation activities in our textbook (Vahid & Lysecky, 2017, sect. 2.8-11). I am already familiar with these concepts, so it was easy for me. I studied microprocessors as part of the core curriculum for an A.A.S I received in 1993. I cut my programming teeth on ASP and javascript in 2003 when I ported an Oracle-based support tool to SQL Server for my employer. I have since worked with other programming languages, including Python. I am not a programmer because my brain does not hold variables long enough to write code from scratch (pun intended). I am better suited to troubleshooting code others have written. My preferred programming language is Python.<br />
<br />
I visited and reviewed two web sites similar to Scratch; Alice (Alice, n.d.) and Code Combat (Code Combat, n.d.). Alice promises to teach programming fundamentals using easy to grasp methods in a fun and interactive way. Code Combat promises the same things but is based more on gameplay. Each of the three sites requires an account to use their platforms. Of the three sites, Scratch seemed the better choice for me. The outstanding question remained, what was I going to build?<br />
<br />
<b>Difficulties</b><br />
<br />
As mentioned in the previous section, I not a programmer. I am not a gamer, either. I played Pong, Gorilla, and Doom 2 each for about two weeks and got bored with them. I like to solve real-world problems with machines and electronics, rather than create virtual problems for others to solve. I enjoy getting into the code when I am trying to solve an actual problem or streamline a work process. I think this I why I found it difficult to create a Scratch project.<br />
<br />
I overcame the difficulty by forcing myself to do the work. I narrowed my scope to one coding block at a time and stopped trying to do everything at once. An insight gained from this exercise is realizing I try and solve as many problems as possible using the least amount of code.<br />
<br />
<b>Language Differences</b><br />
<b><br /></b>There are three types of programming languages covered in the reading for this assignment, machine language, assembly language, and high-level language (Vahid & Lysecky, 2017, sect. 2.8-10). Machine language consists of ordered bits that a computer processor can process in sequence, is not human readable, and is only useful within the processor. A machine language program can be useful for comparing performance on different types of processors and identifying faults for quality assurance. Assembly language is a set of words that correspond to machine code operations, is human-readable, and makes it possible to create instructions for assembly into machine language. It is useful for teaching future electrical engineers about the inner workings of processors. A high-level language takes the concept of assembly language one step further to create a programming vocabulary that allows programmers to write complex programs with annotated lines for assembly into machine language. High-level languages are the most popular of these three types because they are more accessible for people in many professions.<br />
<br />
<b>Conclusion</b><br />
<b><br /></b>My experience demonstrated Scratch is not the programming language of choice for me. It was useful for exploring the kinds of tools that are currently available for learning programming concepts. Scratch is an economical choice for learning programming concepts. You can visit my project at <a href="https://scratch.mit.edu/projects/322167164/">https://scratch.mit.edu/projects/322167164/</a>.<br />
<br />
<div style="text-align: center;">
<b>References</b></div>
<b><br /></b>
Carnegie Mellon University. (n.d.). Alice home page. Retrieved from <a href="http://www.alice.org/">www.alice.org/</a><br />
Code Combat. (n.d.). Code combat home page. Retrieved from <a href="http://codecombat.com/home/">codecombat.com/home/</a><br />
Scratch. (n.d.). Scratch home page. Retrieved from <a href="http://scratch.mit.edu/">scratch.mit.edu/</a><br />
Vahid, F., & Lysecky, S. (2017). Computing technology for all. Retrieved from <a href="http://zybooks.zyante.com/">zybooks.zyante.com/</a><br />
<div>
<br /></div>
Arizona Deanhttp://www.blogger.com/profile/04079156396215404866noreply@blogger.com0