2019년도 (2)학기 (운영체제) [진행 중]

Posted by nkjok
2019. 8. 29. 17:00 자격증관련/2019-2학기
반응형
공퓽의 트위치 방송 채널
Chu레쉬의 유튜브 채널

운영체제


목차


  운영체제 목차

  1. 운영체제 개요
  2. 운영체제의 기능과 서비스
  3. 프로세스의 개념
  4. 스레드의 개념




-------------------------------------------------------------------------
------------------------------------------




1차시 운영체제 개요


응용소프트웨어

어떤 문제 해결을 해결하기 위해 사용자나 전문가에 의해 만들어진 프로그램이다.



멀티프로세싱

2개 이상의 프로세서를 이용하여 사용하는 시스템이다.



일괄처리

사용자들의 작업 요청을 일정한 분량이 될 때까지 모두 모아 두었다가 한꺼번에 처리하는 방식의 시스템이다.



운영체제에서 커널이라는 것은 무엇인가요?
커널은 운영체제의 핵심으로 메모리에 상주하면서 운영체제의 다른 부분 또는 응용 프로그램 수행에 필요한 환경을 설정하는 소프트웨어이다.
응용 프로그램에 실행에 필요한 다양한 서비스를 제공하고 실행되는 프로세스를 스케쥴링하는 역할을 한다.


운영체제의 개념과 목적
컴퓨터 하드웨어와 컴퓨터 사용자 간의 매개체 역할을 하는 시스템 소프트웨어이다.
하드웨어 및 사용자, 응용 프로그램, 시스템 프로그램 사이에서 인터페이스를 제공한다.
프로세서, 메모리, 입출력장치, 통신장치 등 컴퓨터 자원을 효과적으로 활용하려고 조정·관리한다.
메일 전송, 파일 시스템 검사, 서버 작업 등 높은 수준의 서비스를 처리하는 응용 프로그램을 제어한다.
다양한 사용자에게서 컴퓨터 시스템을 보호하려고 입출력을 제어하며 데이터를 관리한다.


운영체제의 종류
동시 사용자 수에 따라 Single-user system과 Multi-user system으로 분류된다.
작업 처리 방법에 따라 Single-tasking system과 Multi-tasking system (Multiprogramming system)으로 분류된다.
사용 환경에 따라 Batch processing system, Time-sharing system, Distributed processing system, Real-time system으로 분류된다.


운영체제의 발달 과정
1940년대에는 운영체제 개념 존재하지 않았고 사용자가 기계어로 직접 프로그램 작성, 실행하는 작업별 순차 처리 시스템을 사용하였다.
1950년대부터 일괄 처리 시스템이 사용되었는데 초기 운영체제인 일괄 처리 시스템(batch processing system)은 작업을 올리는 시간과 해제하는 시간 줄이는 데 관심이 있었다.
1960년대에는 장치 독립성을 이용한 편리한 하드웨어 관리와 다중 프로그래밍 그리고 시분할, 다중 처리, 실시간을 이용한 시스템의 처리 능력이 향상되었다.
1970년대에서 1990년대에는 분산 처리 시스템으로 인해 컴퓨터 네트워크와 온라인 처리 방법이 널리 사용되었다.
2000년대 이후 스마트폰이나 태블릿 같은 모바일 기기가 대중화되면서 모바일 및 임베디드, 가상화 및 클라우드 컴퓨팅이 발달하였다.


------------------------------------------




2차시 운영체제의 기능과 서비스



명령 라인 인터페이스

코드나 단어 등 명령어 입력을 키보드로 요구하는 형태이다.



GUI

사용하기 편리한 사용자 인터페이스로 아이콘 형태를 이용하여 자유로운 마우스 사용을 허용한다.



스마트 자동차에는 어떤 OS 종류가 있을까요?
애플과 구글, 마이크로소프트(MS) 등 주요 기업이 스마트카에 탑재하는 운영체제(OS)를 선보이고 있다.
애플은 iOS(애플 운영체제) 기반의 차량용 OS ‘카플레이’를 내놓았고, 구글은 ‘안드로이드 오토’를 무기로 시장을 공략하고 있다.
그리고 마이크로소프트(MS)는 ‘윈도인더카’를 발표했다.



운영체제의 기능
운영체제 기능은 크게 자원 관리 기능, 시스템 보호, 네트워킹, 명령 해석기와 시스템 관리으로 구분된다.
자원 관리 기능에는 메모리 관리, 프로세스 관리, 주변장치 관리, 파일 관리가 있다.
운영체제는 파일 사용 권한 부여하고 데이터 암호화 등 서비스를 제공하며 데이터와 시스템을 보안한다.
프로세서는 다양한 방법으로 구성된 네트워크 이용, 완전 접속과 부분 접속 방법으로 연결한다.


운영체제 서비스
부트스트래핑 서비스는 운영체제를 메인 메모리에 적재하는 과정이다.
사용자 서비스에는 사용자 인터페이스, 메뉴 인터페이스, GUI(Graphical User Interface), 프로그램 실행, 입출력 동작 수행, 파일 시스템 조작, 통신(네트워크), 오류 탐지가 있다.
시스템 서비스에는 자원 할당, 계정, 보호와 보안이 있다.


운영체제의 미래
사람 같은 인공지능 OS 즉, OS가 기존의 단순 정보전달 차원에서 문제 해결능력을 갖추는 단계까지 이르렀다.
새로운 운영체제는 태블릿PC와 스마트폰은 물론, 사물인터넷 및 ATM기, 심지어 신호등을 비롯한 일상의 기기에도 적용이 가능하다.
애플과 구글, 마이크로소프트(MS) 등 주요 기업이 스마트카에 탑재하는 운영체제(OS)를 선보이고 있다.


------------------------------------------




3차시 프로세스의 개념



프로세스

실행 중인 프로그램으로 여기서 실행중인 프로그램이란 디스크에 저장되어 있던 실행 가능한 프로그램이 메모리에 적재되어 운영체제의 제어를 받는 상태를 의미한다.



PCB

프로세스에 할당된 자원에 대한 정보를 가지고 있다.



병행프로세스

프로세스가 여러 개 동시에 실행되는 개념이다.



우리가 컴퓨터로 노래를 들으면서 한글프로그램을 이용하여 숙제를 하는 경우에 컴퓨터 내부 프로세스는 어떻게 동작되는 걸까요?
컴퓨터 용어로 쓰이는 프로세스는 실행 중인 프로그램을 의미합니다.
프로세스가 실행되는 동안 생성, 준비, 실행, 대기, 종료의 상태들을 거치는데, 컴퓨터는 여러 일을 처리할 때 프로그램 요소들이 움직이는 일정에 따라 작업 순서를 매깁니다.
이를 스케줄링이라고도 부릅니다. 그리고 정해진 일정에 따라 컴퓨터의 중앙처리장치(CPU)가 그 작업을 실행합니다.
컴퓨터로 노래를 들으면서 한글프로그램을 이용해서 학교 숙제를 하는 경우를 생각해 봅시다.
우리가 느끼기에는 컴퓨터에서 두 가지 일이 동시에 이루어지는 것처럼 느껴지지만 사실은 운영체제의 멀티태스킹 기능이 두 가지 프로세스를 잘게 쪼개어 명령을 처리할 수 있도록 일정을 짜고,
CPU로 명령을 보내 차례대로 필요한 정보를 처리할 수 있도록 하는 과정이 눈에 보이지 않는 속도로 이루어지는 것입니다.
※ 출처 : 천재학습백과 초등 소프트웨어 용어사전, 천재교육



프로세스의 개념
실행중인 프로그램(작업)이다.
운영체제에 들어 있는 프로세스는 제어 블록 PCB 이다.
커널에 등록되고 커널의 관리하에 있는 작업이다.
각종 자원들을 요청하고 할당 받을 수 있는 개체이다.
프로세스 관리 블럭을 할당 받은 개체이다.



프로세스의 종류
운영체제 프로세스는 운영체제 프로세스는 프로세스 상태 순서를 제어하거나 사용하고 있는 프로세스가 다른 사용자나 운영체제 영역을 침범하지 못하게 감시하는 기능을 담당한다.
사용자 프로세스는 사용자 프로세스는 사용자 코드를 수행한다.
병행프로세스는 서로 독립적으로 실행되는 독립 프로세스와 프로세스들이 서로 협력하며 수행되는 협동 프로세스로 구분된다.



프로세스의 상태변화
프로세스의 상태 변화는 운영체제가 프로세서 스케줄러 이용하여 관리한다.
각 프로세스는 생성, 준비, 실행, 대기, 종료 상태로 구분되고 실행하면서 상태가 변한다.
생성 상태는 사용자가 요청한 작업이 커널에 등록되고 PCB가 할당되어 새로운 프로세스가 만들어지는 상태이다.
준비상태는 프로세서를 할당 받으려고 기다리는 상태로 즉시 실행 가능한 상태이다.
실행상태는 프로세서를 점유하여 명령어가 실행되는 상태이다.
대기상태는 이벤트나 입출력 대기 신호 발생을 기다리는 상태이다.
종료상태는 프로세스가 프로세서 외의 특정 자원을 요청하고 이를 할당 받을 때까지 기다리고 있는 상태이다.
------------------------------------------




4차시 스레드의 개념



스레드

프로세스의 특성인 자원과 제어에서 제어만 분리한 실행 단위로써 프로세스 하나는 스레드 한 개 이상으로 나눌 수 있다.



다중 스레드

프로그램 하나를 여러 실행 단위로 쪼개어 실행한다는 측면에서 다중 처리한다.



스레드 장점

사용자 응답성 증가하고 프로세스의 자원과 메모리 공유가 가능하다. 경제성 좋으며 다중 처리(멀티 프로세싱)로 성능과 효율이 향상된다.



프로세스와 스레드의 차이점은 무엇일까요?
프로세스는 실행 중인 프로그램으로 리소스와 스레드로 구성되어 있습니다.
그리고 프로세스는 하나 이상의 스레드를 가지고 있습니다.
스레드는 경량화된 프로세스로서 프로세스 내에서 실제 작업을 수행하고 있습니다.



스레드의 개념
프로세스의 특성인 자원과 제어에서 제어만 분리한 실행 단위이다.
프로세스 하나는 스레드 한 개 이상으로 나눌 수 있다.
프로세스의 직접 실행 정보를 제외한 나머지 프로세스 관리 정보 공유한다.
다른 프로시저를 호출하고 다른 실행을 기록한다.(별도 스택 필요)
관련 자원과 함께 메모리 공유 가능하므로 손상된 데이터나 스레드의 이상 동작을 고려한다.
경량 프로세스 LWP는 프로세스의 속성 중 일부가 들어 있는 것이다.
중량 프로세스 HWP는 스레드 하나에 프로세스 하나인 전통적인 경우이다.
같은 프로세스의 스레드들은 동일한 주소 공간 공유한다.
동일 프로세스의 여러 스레드는 코드 영역, 데이터 영역, 운영체제 자원(예: 열린 파일, 시그널)을 공유한다.
프로세스가 다수의 제어 스레드를 가진다면, 프로세스는 동시에 하나 이상의 작업을 실행할 수 있다.



단일 스레드와 다중 스레드
운영체제 프로세스는 운영체제 프로세스는 프로세스 상태 순서를 제어하거나 사용하고 있는 프로세스가 다른 사용자나 운영체제 영역을 침범하지 못하게 감시하는 기능을 담당한다.
사용자 프로세스는 사용자 프로세스는 사용자 코드를 수행한다.
병행프로세스는 서로 독립적으로 실행되는 독립 프로세스와 프로세스들이 서로 협력하며 수행되는 협동 프로세스로 구분된다.



스레드의 상태변화
프로세서 함께 사용하며 항상 하나만 실행한다.
한 프로세스에 있는 스레드는 순차적 실행한다. (해당 스레드의 정보 저장레지스터, 스택)
프로세스 생성하면 해당 프로세스의 스레드도 함께 생성된다. 단, 스레드 생성에서는 운영체제가 부모 프로세스와 공유할 자원 초기화 필요 없다.
프로세스의 생성과 종료보다는 오버헤드 훨씬 적다.
스레드 한 개가 대기 상태로 변환 시 전체 프로세스 대기 상태로 변환하지 않는다.
실행 상태의 스레드가 대기 상태가 되면 다른 스레드 실행 가능하다.(서로 독립적이지 않다.)
프로세스 하나에 있는 전체 스레드는 프로세스의 모든 주소에 접근 가능하여 스레드 한 개가 다른 스레드의 스택 읽기나 덮어 쓰기 가능하다.
프로세서는 여러 사용자가 생성하여 서로 경쟁적으로 자원을 요구하고 서로 다른 관계를 유지해야 하지만 스레드는 사용자 한 명이 여러 스레드로 개인 프로세스 하나 소유한다.
반응형