이 영역을 누르면 첫 페이지로 이동
시간의화살 블로그의 첫 페이지로 이동

시간의화살

페이지 맨 위로 올라가기

시간의화살

행복하세요

Computer Science/Operating System

  • 시간의화살
[Operating System] 프로세스와 동시성 제어

[Operating System] 프로세스와 동시성 제어

2025.03.28
멀티쓰레드와 멀티프로세싱 환경에서는 여러 요소들이 동시에 실행되고, 운영체제는 동시성 관련 문제를 해결해 줘야 한다. Race Condition - 두 요소가 동시에 공유 데이터를 조작할 때 실행 순서에 따라 결과가 달라지는 현상을 말한다.Mutual Exclusion - 한 순간에 하나의 요소만 공유 자원에 접근할 수 있도록 보장해 Race Condition을 방지한다.Critical Section - 여러 요소가 동시에 접근하면 안 되는 공유 자원에 접근하는 코드 블록 자체를 의미한다.Starvation - 프로세스가 자원을 기다리지만 다른 프로세스가 자원을 반환하지 않아 무한히 기다리는 상황을 말한다.Deadlock - 여러 프로세스가 서로 자원을 점유해 상대방이 작업을 마칠 때 까지 기다리며 무한..
[Operating System] Process Termination / Thread

[Operating System] Process Termination / Thread

2025.03.19
CPU 에러, signal, 부모 프로세스 관련 문제 등으로 프로세스가 동작을 마치면 exit System Call을 호출해 terminated 상태로 변한다.이 때 release는 프로세스가 실행될 때 사용했던 컴퓨팅 리소스를 반환함을 의미한다.terminated 상태인 프로세스는 아직 제거된 상태는 아니고, wait System Call이 호출될 때 제거된다. 사용량 및 통계 정보를 저장하는 PCB만 남아있는 상태이다.     exit System Call을 호출하면 해당 프로세스는 User Mode에서 Kernel Mode로 변하게 된다.이 때 PCB를 제외한 test.c의 모든 컴퓨팅 자원을 회수하는데, 이 PCB를 통해 해당 프로세스가 terminated 상태임을 확인한다. PCB의 State ..
[Operating System] Process (Context, Creation, Switch)

[Operating System] Process (Context, Creation, Switch)

2025.03.17
Process Context는 프로세스가 실행될 때 필요한 컴퓨터 내 리소스의 집합을 의미한다. User Context운영체제가 직접 만들지 않고, 개발자가 작성한 프로그램이 만들어낸다. 실행 중인 프로그램의 명령어 (Code Segment)전역 변수, 정적 변수 등 프로그램이 끝날 때 까지 유지되는 데이터 (Global Data)함수 내부에 선언된 지역 변수들이 저장되는 LIFO 구조 공간 (User Stack) System Context운영체제가 직접 관리한다. Kernel Stack - 커널 모드에서 실행될 때 함수 호출과 시스템 콜을 처리하기 위한 스택으로, 프로세스마다 독립적이다.Process Control Block - 프로세스의 중요한 정보를 저장하는 자료구조로 프로세스의 상태, pid, 메..
[Operating System] 커널 구조와 프로세스

[Operating System] 커널 구조와 프로세스

2025.03.12
운영체제의 코어 기능을 모아둔 커널을 구현할 때, 구현하는 방식에 따라 Monolithic Kernel과 Micro Kernel로 구분된다. 사용자 공간 - 응용 프로그램에서 실행되는 영역커널 공간 - 운영체제의 핵심 기능이 실행되는 영역 MonolithicKernel운영체제의 모든 핵심 기능이 하나의 커널 공간에서 실행되는 방식으로, Unix와 Linux는 Monolithic Kernel로 구성되어있다.마이크로 커널보다 실행 속도가 빠르지만 작은 에러가 전체 시스템에 전파될 수 있고 커널의 크기가 크다. MicroKernel운영체제의 핵심 기능을 최소화하고 나머지 기능을 사용자 공간에서 가져오는 커널 구조로, IoT 장치 등 작은 운영체제가 필요한 기기에서 사용된다.개발할 때 전체 커널을 다시 컴..
[Operating System] 운영체제 개요

[Operating System] 운영체제 개요

2025.03.10
소프트웨어는 프로그램을 포함하는 더 넓은 개념으로, 프로그램은 시작점이 되는 EntryPoint가 있어 혼자서도 실행될 수 있지만, 소프트웨어는 시작점이 없을 수 있다. 운영체제는 소프트웨어로 단순한 프로그램이 아니라 여러 프로그램, 드라이버, 라이브러리 등 다양한 구성 요소를 포함하는 소프트웨어의 집합이다.    운영체제는 하드웨어와 소프트웨어 사이에 위치해 사용자와 컴퓨터 간 인터페이스를 제공하는 시스템 소프트웨어이다. 운영체제는 컴퓨터의 리소스에 접근하고 관리해 사용자에게 여러 편리한 추상화를 제공한다. 저장소에 파일이 어떤 구조로 저장되어있고, 어떤 위치에 저장되어있는지 사용자가 알지 못해도 운영체제가 알아서 처리해주고, CPU 메모리 등 리소스의 사용량을 지속적으로 모니터링해 기록한다. Proc..
[Ubuntu] 셸 스크립트 프로그래밍

[Ubuntu] 셸 스크립트 프로그래밍

2023.09.11
리눅스에서 Shell은 사용자와 운영체제간의 상호작용을 중개하는 인터페이스로 사용자의 명령을 해석하고 명령에 따라 시스템을 제어한다. 우분투에서는 bash 라는 셸을 사용한다. 셸 스크립트 프로그래밍은 C언어와 유사한 점이 많다. 변수 / 반복문 / 제어문 등을 사용할 수 있고, 컴파일 하지 않고 바로 텍스트 파일 형태로 실행할 수 있다. 셸 스크립트에서 변수는 사용 전 미리 선언할 필요가 없고, 값을 할당함과 동시에 변수가 생성된다. 모든 변수는 문자열로 취급되며 대입 시 좌우 공백이 없어야 한다. 셸은 여러 환경 변수 값을 가지는데, echo $환경변수명 명령어로 특정 환경변수에 접근할 수 있다. 나머지 반복문, 변수 사용, 제어문 등은 일반 프로그래밍 언어와 비슷하니 필요할 때 찾아서 사용하자. 셸..
  • 최신
    • 1
    • 2
  • 다음

정보

시간의화살 블로그의 첫 페이지로 이동

시간의화살

  • 시간의화살의 첫 페이지로 이동

검색

방문자

  • 전체 방문자
  • 오늘
  • 어제

카테고리

  • 분류 전체보기 (613)
    • Algorithm (205)
      • Data Structure (5)
      • Theory && Tip (33)
      • Baekjoon (166)
      • ALGOSPOT (1)
    • Spring (123)
      • Spring (28)
      • Spring Web MVC (20)
      • Spring Database (14)
      • Spring Boot (6)
      • Spring 3.1 (11)
      • Spring Batch (6)
      • Spring Security (16)
      • JPA (12)
      • Spring Data JPA (5)
      • QueryDSL (4)
      • eGovFramework (1)
    • Programming Language (74)
      • Java (19)
      • JavaScript (15)
      • C (25)
      • C++ (12)
      • Python (1)
      • PHP (2)
    • Computer Science (69)
      • Operating System (18)
      • Computer Network (17)
      • System Programming (22)
      • Universial Programming Lang.. (8)
      • Computer Architecture (4)
    • Database (21)
      • Database (7)
      • MySQL (3)
      • Oracle (3)
      • Redis (5)
      • Elasticsearch (3)
    • DevOps (20)
      • Docker && Kubernetes (8)
      • Jenkins (4)
      • Github Actions (0)
      • Amazon Web Service (8)
    • Machine Learning (28)
      • AI Introduction (28)
    • Mobile (28)
      • Android (21)
      • Flutter (7)
    • Solutions (14)
    • Logs (6)
    • 낙서장 (25)

최근 글

나의 외부 링크

메뉴

  • 홈

정보

13months의 시간의화살

시간의화살

13months

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. Copyright © 13months.

티스토리툴바