응용SW기초기술활용 - Shell Script

응용SW기초기술활용

운영체제 기본 명령어 개요

  • Shell은 사용자의 명령어를 수행하는 명령어 해석기

  • 운영체제를 제어하는 방법

    • GUI
      • Graphic User Interface
      • 마우스로 아이콘이나 메뉴를 선택하여 작업
    • CLI
      • Command Line Interface
      • 키보드로 명령어를 직접 입력하여 작업

윈도우 CLI 기본 명령어

명령어 기능
ATTRIP 파일의 속성을 변경
CD 디렉토리의 위치 변경
CHKDSK 디스크 상태 점검
CLS 화면의 내용을 지움
COPY 파일 복사
DEL 파일 삭제
DIR 파일의 목록 표시
FIND 파일 검색
FORMAT 디스크 표면을 트랙과 섹터로 초기화
MD 디렉토리 생성
MOVE 파일 이동
REN 파일 이름 변경
TYPE 파일의 내용 표시

UNIX와 LINUX 기본 명령어

명령어 기능
cat 파일 내용을 화면에 표시
chdir 디렉토리 위치 변경
chmod 파일의 사용 허가 지정
chown 소유자 변경
cp 파일 복사
exec 새로운 프로세스 수행
find 파일 검색
fork 새로운 프로세스를 생성
fsck 파일시스템을 검사하고 보수
getpid 자신의 프로세스 아이디를 얻음
ls 현재 디렉토리 내의 파일 목록을 표시
rm 파일 삭제
wait fork 후 exec에 의해 실행되는 프로세스의 상위 프로세스가 하위 프로세스 종료 등의 event를 기다림

응용SW기초기술활용 - 환경변수

응용SW기초기술활용

환경변수의 개념

  • 시스템 소프트웨어의 동작에 영향을 미치는 동적인 값들의 모임
  • 변수명과 값으로 구성
  • 시스템의 기본 정보를 저장
  • 자식프로세스에 상속됨
  • 부모 프로세스에서 상속받아 사용
  • 시스템 전반에 걸쳐 적용되는 시스템 환경변수와 사용자 계정 내에만 적용되는 사용자 환경변수로 구분

환경변수 보기

  • Windows
    • echo %PATH%
  • UNIX
    • echo $PATH

환경변수 설정

  • Windows
    • self 변수 = 값
  • UNIX
    • env 변수 = 값
    • set 변수 = 값

윈도우 운영체제 환경변수

환경변수 용도
%APPDATA% 설치된 모든 프로그램의 필요 데이터가 저장된 폴더
%COMSPEC% 기본 명령 프롬프트로 사용할 프로그램
%HOMEPATH% 로그인한 계정의 기본 폴더
%PATH% 실행 파일을 찾는 경로
%PATHEXT% CMD에서 실행할 수 있는 파일 확장자 목록
%PROGRAMFILES% 기본프로그램의 설치 폴더
%SYSTEMDRIVE% 윈도우가 부팅된 드라이브
%SYSTEMROOT% 부팅된 운영체제가 들어 있는 폴더
%USERNAME% 로그인한 계정 이름
%USERPROFILE% 로그인한 유저의 프로필이 저장된 폴더

UNIX와 LINUX 운영체제 환경변수

환경변수 용도
$DISPLAY 현재 디스플레이 위치
$HOME 사용자의 홈 디렉토리
$LANG 프로그램 사용 시 기본적으로 지원되는 언어
$MAIL 이메일을 보관하는 경로
$PATH 실행파일을 찾는 경로
$PS1 Shell Prompt 정보
$PWD 현재 작업하는 디렉토리
$TERM 로그인 터미널 타입
$USER 사용자의 이름

응용SW기초기술활용 - 프로세스 스케줄링

응용SW기초기술활용

프로세스의 개념

  • 처리기, CPU에 의해 처리되는 사용자 프로그램
  • 정의
    • PCB(Process Controll Block)을 가지는 프로그램
    • 실기억장치에 저장된 프로그램
    • 프로세서가 할당되는 실체로서, 디스패치가 가능한 단위
    • 프로시저가 활동 중인 것
    • 서로 규칙적이거나 연속적이지 않고 독립적으로 실행되므로 비동기적 행위를 일으키는 주체
    • 지정된 결과를 얻기 위한 일련의 계통적 동작
    • 목적 또는 결과에 따라 발생되는 사건들의 과정
    • 운영체제가 관리하는 실행 단위

PCB; Process Control Block, 프로세스 제어 블록

  • 운영체제가 프로세스에 대한 중요한 정보를 저장해 놓는 곳
  • 각 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 프로세스가 완료되면 PCB는 제거됨
  • PCB에 저장되는 정보의 종류
    • 프로세스의 현재 상태
    • 포인터
      • 부모 프로세스의 주소 기억
      • 자식 프로세스의 주소 기억
      • 현재 프로세스가 위치한 주소 기억
      • 프로세스에 할당된 각 자원에 대한 주소 기억
    • 프로세스 고유 식별자
    • 스케줄링 및 프로세스의 우선순위
    • CPU 레지스터 정보
    • 주기억장치 관리 정보
    • 입출력 상대 정보
    • 계정 정보

Thread 스레드

  • 프로세스 내에서의 작업 단위로서 시스템의 여러 자원을 할당 받아 실행하는 프로그램 단위
  • 하나의 프로세스에 하나의 스레드가 존재하는 경우는 단일 스레드, 하나 이상의 스레드가 존재하는 경우는 다중스레드
  • 프로세스의 일부 특성을 갖고 있기 때문에 경량 프로세스라고 함
  • 스레드 기반 시스템에서는 스레드는 독립적인 스케줄링의 최소 단위로서 프로세스의 역할 담당
  • 장점
    • 하드웨어, 운영체제의 성능과 응용 프로그램 처리율 향상
    • 응용 프로그램의 응답 시간 단축
    • 실행 환경을 공유 시켜 기억장소의 낭비를 줄임
    • 프로세스들 간의 통신 향상
  • 프로세스 내부의 작업 단위

Scheduling 스케줄링의 개념

  • CPU나 자원을 효율적으로 사용하기 위한 정책
  • 프로세스가 생성되어 실행될 때 필요한 시스템의 여러 자원을 해당 프로세스에게 할당하는 작업
  • 프로세스가 생성되어 완료될 때 까지 프로세스는 여러 종류의 스케줄링 과정을 거침

스케줄링의 목적

  • 모든 프로세스에게 공정하게 할당
  • 단위 시간당 프로세스를 처리하는 비율 증가
  • CPU가 순수하게 프로세를 실행하는데 사용되는 시간 비율 증가
  • 우선 순위가 높은 프로세를 먼저 실행
  • 오버헤드를 최소화
    • 오버헤드
      • 시스템에서 목적으로 하는 효과를 얻기 위해 본질적인 것은 아니지만 요구되는 작동, 또는 그 때문에 필요한 자원
  • 작업을 지시하고 반응하는 응답시간 최소화
  • 프로세스를 제출한 시간부터 실행이 완료될 때까지 걸리는 반환시간을 최소화
  • 프로세스가 준비상태 큐에서 대기하는 시간을 최소화
  • 메모리, 입력장치 등의 자원을 균형 있게 사용
  • 자원을 사용하기 위해 무한정 연기되는 상태를 회피
  • 프로세스에게 CPU를 할당하고 문맥 교환을 하는 프로세스 관리기능

Non-Preemptive 비선점 스케줄링

  • 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법
  • 프로세스가 CPU를 할당 받으면 해당 프로세스가 완료될 때까지 CPU를 사용
  • 모든 프로세스에 대한 요구를 공정하게 처리
  • 프로세스 응답 시간의 예측이 용이하며, 일괄 처리 방식에 적합
  • 짧은 작업이 긴 작업을 기다리는 경우 발생할 수 있음
  • 종류
    • FIFO(FCFS)
    • SJF
    • HRN
    • Priority

Preemptive 선점 스케줄링

  • 하나의 프로세스가 CPU를 할당 받아 실행하고 있을 때 우선순위가 높은 다른 프로세스가 CPU를 강제로 빼앗아 사용할 수 있는 스케줄링 기법
  • 우선순위가 높은 프로세를 빠르게 처리
  • 빠른 응답시간을 요구하는 대화식 시분할 시스템에 사용됨
  • 많은 오버헤드를 초래
  • 선점이 가능하도록 일정 시간 배당에 대한 인터럽트용 타이머 클록 필요
  • 종류
    • RR
    • SRT
    • Preemptive
    • Priority
    • MLQ
    • MFQ

프로세스 스케줄링 종류 및 특징

프로세스 스케줄링 종류 및 특징

API API오용 Anaconda Beacon Bluetooth CRUD분석 Camera ChatBot DB관련신기술 DB관리기능 DB서버 DB표준화 ER다이어그램 ER모델 ETL Flask HW관련신기술 IDE도구 IP IoT Machine_Translation NLP배경 ORM프레임워크 Package Recurrent Neural Network SDLC SW개발방법론 SW개발방법론선정 SW개발보안정책 SW개발표준 SW관련신기술 Sequence_Tagging ShellScript TCP_UDP Vector WordCloud c 자료형 class embedding konlpy python python 자료형 가설검증 개발환경구축 객체지향프로그래밍언어 관계데이터베이스모델 관계데이터언어 국제표준제품품질특성 네트워크7계층 네트워크관련신기술 네트워크장비 네트워크침해공격용어 논리데이터모델개요 논리데이터모델품질검증 논리적데이터모델링 논문 단위모듈구현 단위모듈테스트 데이터검증 데이터모델개념 데이터베이스무결성 데이터베이스백업 데이터베이스암호화 데이터베이스용량설계 데이터베이스이중화구성 데이터베이스정규화 데이터분석 데이터분석 - 순열 - 조합 데이터분석 - 정규분포 데이터분석 - 통계기초 데이터사이언스개념 데이터입출력 데이터전환수행계획 데이터정제 데이터조작프로시저작성 데이터조작프로시저최적화 데이터조작프로시저테스트 데이터지역화 데이터타입 데이터표준확인 데이터품질분석 라이브러리 로그분석 메모리관리 모델화 몬테카를로 물리데이터모델설계 물리데이터모델품질기준 물리데이터저장소구성 물리요소조사분석 반정규화 배치프로그램 변수 보안기능 보안솔루션 보안아키텍처 보안취약성식별 분산데이터베이스 분산분석 비용산정모델 빌드자동화도구 사용자정의함수 상관분석 서버개발프레임워크 서버인증 서버장비운영 서버접근통제 서비스공격유형 선언형언어 세션통제 소스코드인스펙션 소프트스킬 소프트웨어개발프레임워크 소프트웨어버전관리도구 소프트웨어연계테스트 슈퍼디엠지 스크립트언어 시스템카탈로그와뷰 암호알고리즘 애플리케이션모니터링도구 애플리케이션배포도구 애플리케이션성능개선 애플리케이션테스트결과분석 애플리케이션테스트시나리오작성 애플리케이션테스트케이스작성 애플리케이션통합테스트수행 애플리케이션패키징 연산자 예외처리 오답노트 오류데이터측정 오류처리 오류처리확인및보고서작성 요구공학방법론 운영체제 웹서버 이벤트 인터넷구성의개념 인터페이스구현검증 인터페이스기능확인 인터페이스보안 입력데이터검증및표현 자료구조 자연어처리 재사용 절차적프로그래밍언어 정보보안침해공격용어 정보처리기사 제품소프트웨어매뉴얼작성 집계성DCL작성 체크리스트 초기데이터구축 취약점분석 칼럼속성 캡슐화 코드오류 클러스터링 키종류 테일러링기준 트랜잭션인터페이스 트리거 파일처리기술 파티셔닝 패키지 포트포워딩 프로세스스케줄링 프로토타입 한국어임베딩 핵심정리 현업도구 형상관리도구 환경변수 회귀분석
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×