프로세스 관리

김두현·2022년 11월 26일
1

Backend Curriculum

목록 보기
9/16
post-thumbnail

Goal

  • 프로세스의 개념을 이해한다.
  • 프로세스의 상태를 파악한다.
  • 프로세스 관리에 대한 지식을 파악한다.
    • PCB
    • Process Queue
    • Contenxt Switching

프로세스

  • 프로세스 : 메인 메모리에 할당되어 실행중인 프로그램
    • 프로그램 : 보조 기억장치에서 대기중인 실행 파일(일하지 않는 상태)
    • 즉, 실행을 위해 커널에 등록된 작업을 의미한다.

프로세스 상태

  • New : 메인 메모리에 할당된 상태
  • Ready : CPU에 할당받는 것을 대기하는 상태
  • Run : CPU에 할당받아 실행중인 상태
  • Waiting : CPU외에 다른 장치에 할당받아 다른 작업을 하는 상태
  • Terminated : 프로세스가 종료된 상태

다음은 프로세스 상태의 전이도이다.


PCB(Process Control Block)

  • PCB : 프로세스를 관리하기 위해, 프로세스의 정보를 저장한다.
    • 각 프로세스마다 하나씩 가지고 있다.
    • 프로세스 상태, 프로세스 고유 식별 번호, CPU 점유 시간, 우선순위 등 다양한 담는다.

Process Queue

  • 프로세스는 한 번에 여러개가 실행되며 상태가 계속 변하기때문에, 받아야하는 서비스도 달라진다. 따라서 서비스를 기다리는 순서가 존재하게 되고, 이러한 순서를 기다리는 곳을 Process Queue라고 한다.

  • Job Queue : 메인 메모리 할당을 기다리는 Queue
  • Ready Queue : CPU 할당을 기다리는 Queue
  • Device Queue : 다른 장치(I/0 등)를 대기하는 Queue

Context Switching

  • Context Switcing : CPU가 점유하는 프로세스를 옮기는 것을 의미한다.
    • 즉, 실행중이던 프로세스를 멈추고 다른 프로세스가 실행됨을 의미한다.

  • Scheduler : CPU가 선택할 프로세스를 정해주는 작업
  • Dispatcher : 실행중이던 프로세스의 PCB에 데이터를 갱신하고, 새 프로세스의 PCB를 불러오는 작업
  • Context Switching Overhead : Context Switching에 소요되는 시간 및 자원을 의미한다. OS의 성능에 핵심적인 역할을 한다.

✨오늘 내용은 여기까지✨


커리큘럼 남은 일정

인터넷

  • 인터넷 작동 원리
  • HTTP란?
  • 브라우저 동작 원리
  • DNS 작동 원리
  • 도메인 네임이란?
  • 호스팅이란?

    기본적인 프론트엔드 지식
  • HTML
  • CSS
  • JavaScript

    OS 및 일반적인 지식
  • 터미널 사용방법
  • OS 작동 방식
  • 프로세스 관리
  • 스레드와 동시성
  • 기본적인 터미널 명령어
  • 메모리 관리
  • 프로세스간 통신 (IPC)
  • 입출력 관리
  • POSIX 기초
  • 기본적인 네트워크 개념

    버전 관리
  • Git 기본 사용법

    DataBase
  • PostgreSQL (변경 가능성 있음)
  • MongoDB

    DataBase 상세 정보
  • ORM
  • ACID
  • Transaction
  • N + 1 Problem
  • DataBase 정규화
  • Index와 작동 방식

    API
  • 인증
  • REST
  • JSON APIs

    캐싱
  • CDN
  • Server side
  • Client side

    웹 보안 지식
  • MD5, SHA family, scyrpt, bcrypt
  • HTTPS, CORS, SSL/TL, 보안 정책

    Testing
  • 통합 테스트
  • 단위 테스트
  • 기능 테스트

  • CI/CD

    개발과 설계 원칙
  • SOLID
  • KISS
  • YAGNI
  • DRY

    아키텍처 패턴
  • 모놀로틱 앱
  • 마이크로서비스
  • SQA
  • Serverless

    검색 엔진
  • ElasticSearch

    메세지 브로커
  • RabbitMQ, Kafka

    컨테이너화 vs 가상화
  • Docker

    GraphQL
  • Apollo

  • 웹 소켓

  • 웹 서버

    확장성
  • 측정, 모니터링, 원격측정
  • 마이그레이션 전략
  • 수평적 확장 vs 수직적 확장
  • 관찰 가능성을 고려한 확장

참고 자료

운영체제OS-5.프로세스 관리
운영체제 - 03. 프로세스 관리


💕오류 지적 및 피드백은 언제든 환영입니다. 복제시 출처 남겨주세요!💕
💕좋아요와 댓글은 큰 힘이 됩니다.💕
profile
I AM WHO I AM

0개의 댓글