OS 22

[쉽게 배우는 운영체제] 4-2. CPU 스케줄링: 인터럽트 처리

조성호 님의 "쉽게 배우는 운영체제" 책을 정리한 포스팅 입니다 1. 이벤트 드리븐시스템이나 애플리케이션에서 발생하는 이벤트를 중심으로 동작하는 방식입출력 장치는 자신의 작업이 완료되면, 인터럽트 신호를 발생시켜 CPU에 작업을 요청함이벤트 발생 시, 콜백 함수가 호출되어 이벤트가 처리됨 비동기적 방식여러 이벤트가 동시에 발생해도, 각 이벤트를 각각의 스레드에서 처리함다른 이벤트에 영향을 미치지 않음 2. 인터럽트종류구분동기적 인터럽트비동기적 인터럽트설명실행 중인 명령어로 인해 발생하드웨어 오류 또는 입출력 장치에 의해 발생원인프로세스의 문제 또는 의도적 중단하드웨어 요청 또는 외부 이벤트발생 시점명령어 실행 중 특정 조건 충족 시프로그램 실행과 관계없이 트리거됨처리 방식명령어 실행과 밀접하게 연관됨실행..

OS 2024.12.12

[쉽게 배우는 운영체제] 4-1. CPU 스케줄링: 스케줄링

조성호 님의 "쉽게 배우는 운영체제" 책을 정리한 포스팅 입니다 1. 스케줄링 단계스케줄링 단계설명주요 역할고수준 스케줄링전체 작업 수 조절 및 동시에 실행 가능한 프로세스의 총 개수를 제한하는 단계실행 대기열에 추가할 프로세스 결정시스템의 작업 개수 조절중간 수준 스케줄링시스템의 활성 프로세스 수를 조절하는 단계메모리 자원 관리와 시스템 부하를 조절활성 프로세스 수 조절메모리 자원 관리스왑 처리저수준 스케줄링준비 상태에 있는 프로세스 중에서 어떤 프로세스를 실행할지 결정하는 단계스케줄링 알고리즘을 사용하여 CPU 자원을 최적화하며 상태 간 전환을 관리준비 상태 프로세스 선택CPU 자원 할당 최적화상태 간 전환 관리 2. 저수준 스케줄링종류스케줄링 종류설명특징선점형 스케줄링OS가 실행 중인 프로세스의 C..

OS 2024.12.12

[쉽게 배우는 운영체제] 3-2. 프로세스와 스레드: 스레드

조성호 님의 "쉽게 배우는 운영체제" 책을 정리한 포스팅 입니다 1. 스레드프로세스 내에서 실행되는 작업 단위같은 프로세스 내에서 메모리와 자원을 공유 (Light Weight Process)서로 간에 직접적으로 데이터를 주고받을 수 있음데이터를 공유하므로 메모리를 효율적으로 사용할 수 있음 2. 멀티 태스킹 vs 멀티 스레딩항목멀티 태스킹멀티 스레딩정의CPU 할당 시간을 시분할하여 여러 작업을 동시에 처리하는 기법 (시분할 시스템).단일 프로세스 내에서 여러 개의 스레드를 생성하여 병렬 처리하는 방식. (스레드 단위로 스케줄링이 이루어짐)목표여러 작업을 동시에 처리하는 것처럼 보이게 함.단일 프로세스 내에서 여러 스레드를 사용하여 병렬 처리.구현 방식운영체제가 여러 프로세스를 관리하며 각 프로세스에 시..

OS 2024.12.12

[쉽게 배우는 운영체제] 3-1. 프로세스와 스레드: 프로세스

조성호 님의 "쉽게 배우는 운영체제" 책을 정리한 포스팅 입니다 1. 개요프로그램 vs 프로세스구분프로그램프로세스정의어떤 데이터를 사용하여 어떤 작업을 할지 절차를 적어놓은 것작업이 진행되고 있는 프로그램상태정적인 상태 (저장장치에 저장됨) 동적인 상태 (메모리에 올라와 실행 중)저장 위치디스크(SSD, HDD) 등에 저장됨RAM(메모리)에 적재되어 실행됨실행 여부실행되지 않음실행 중인 상태예시myapp.exe (실행 파일)myapp.exe가 실행되어 프로세스 ID를 가지고 동작하는 상태 프로세스로의 전환프로그램을 메모리에 로드PCB 생성구분설명정의프로세스를 관리하기 위한 핵심 데이터 구조주요 정보- PID (Process ID): 프로세스의 고유 식별자 - Process state: 현재 상태 (실행,..

OS 2024.12.11

[쉽게 배우는 운영체제] 2. 컴퓨터의 구조와 성능 향상

조성호 님의 "쉽게 배우는 운영체제" 책을 정리한 포스팅 입니다. 1. 컴퓨터의 기본 구성하드웨어 구성구성 요소설명CPU (중앙 처리 장치)- 명령어를 해석하여 실행하는 장치 - 외부에서 정보를 입력받고, 기억하고, 연산하고, 출력Memory (주기억장치)- 작업에 필요한 프로그램과 데이터를 저장 - 바이트 단위로 분할되며, 분할 공간마다 주소로 구분됨I/O Device (입출력 장치)- 외부 세계와의 데이터 전송 담당- 보조기억장치  - 자성 저장장치: 플로피 디스켓, 하드디스크  - 레이저 저장장치: CD, DVD, Blu-ray Disc  - 메모리 저장장치: USB flash drive, SD Card, SSDMain Board (메인보드)- 컴퓨터의 PCB- 시스템의 핵심 부품을 장착할 수 있는..

OS 2024.01.11

[쉽게 배우는 운영체제] 1. 운영체제 개요

조성호 님의 "쉽게 배우는 운영체제" 책을 정리한 포스팅 입니다 1. 소개프로그래밍의 도입초기 컴퓨터는 설계된 대로만 사용할 수 있었습니다.사용자의 개입이나 프로그래밍 구현이 부족했습니다.프로그래밍을 통해원하는 프로그램을 추가하고 실행할 수 있게 되었습니다. 기능기능설명자원 관리- 프로그램이 사용하는 자원을 관리 - 자원 종류: 메모리, CPU 시간, 디스크 공간, 네트워크 대역폭 등사용자 인터페이스 제공- 사용자가 시스템과 상호작용할 수 있도록 지원 - 프로그램이 데이터를 처리하고 사용자에게 전달하는 방식 - GUI, CLI 등 다양한 인터페이스 제공동시성 관리- 병렬 처리를 통해 여러 작업을 동시에 실행할 수 있도록 지원 - 동시 실행에 필요한 자원 및 스케줄링 관리 2. 역사발전 과정특징ENIAC..

OS 2023.12.26

[ 리눅스 마스터 ] 6. 쉘

1. 쉘 커널과 사용자간의 다리역할. 명령을 해석하여 프로그램을 실행함. 커널과 분리된 프로그램이며 종류가 많음. - 가지고 있는 쉘 확인 : $SHELL, chsh -l, cat /etc/shells - 쉘의 변경 : ' chsh -s /bin/바꿀 쉘 "사용자이름" ' 2. 환경설정 환경변수 HOME : 홈 디렉터리 PATH : 실행파일을 찾는 경로 LANG : 기본 셸 언어 TERM : 로그인한 터미널 PWD : 현재 경로 SHELL : 로그인 셸 USER : 사용자명 PS1 : 프롬프트 변수 MAIL : 도착한 메일이 저장되는 경로 UID : 사용자ID 주요 환경변수 \d : 요일, 월, 일 형태로 날씨 출력 \h : 호스트 이름 \s : 사용중인 셸 시간 \t : 24시간 형태 현재 시간 출력 ..

OS/Linux 2021.08.13

[ 리눅스 마스터 ] 5. 파일 시스템

1. 파일 시스템 운엥체제가 파티션, 디스크 등 데이터를 읽고 쓰는 일련의 체제 파일 백업 및 복구 가능. 적절한 이동 필요. 인터페이스나 명령어 사용가능. 다른사용자와 공유하여 사용가능하며 명령로그를 기록함. 다양한 파일시스템 지원 2. 파일 시스템 구조 파티션 분할하여 포맷하여 파일시스템으로 사용함 부트블록 : 운영체제를 주기억장치에 올리는 역할을 하는 프로그램이 들어있는 영역 슈퍼블록 : 디스크에 대한 다양한 젖ㅇ보를 저장하고 있는 곳. (전체 블록의 수, 블록의 크기, 사용중인 블록의 수 등의 정보 저장) inode 리스트 : inode들을 모아놓은 곳. 한 블록에 여러 개의 inode를 저장함. inode는 파일에 대한 다양한 정보를 저장하는 곳으로 파일마다 하나씩 부여됨. 데이터블록 : 일반적..

OS/Linux 2021.08.13

[ 리눅스 마스터 ] 4. 부팅과 셧다운

1. 하드웨어 인식 단계 BIOS가 하드웨어를 점검하고 부팅 HDD를 점검함. 이후 MBR에 있는 부트 매니저 프로그램 실행하여 운영체제를 시작함. 메모리에 커널이 로드됨. 커널 매개변수를 지정하여 설정 및 변경이 가능함. 커널은 모듈을 사용함. (/etc/modeprobe.conf 파일로 부트 매니저 프로그램에 매개변수값을 바꿀 수 있음.) 2. 소프트웨어 구동 단계 루트파일 시스템을 읽기 전용 형태로 마운트하고 이상이 없으면 읽고 쓰는 형태로 다시 마운트함. 이 때 init 프로세스(/inittab) 생성됨. 해당 init프로세스가 소프트웨어 구동을 레벨별로 위임하여 운영체제를 동작시킴. /etc/inittab : 부팅과 관련된 실행레벨을 정의함. /etc/init/rcS.conf : 시스템 초기화 ..

OS/Linux 2021.08.13

[리눅스 마스터] 3. 디렉터리 구조 및 역할

1. 디렉터리 종류와 특징 디렉터리설명주요 내용/루트 디렉토리파일시스템의 최상위 디렉토리모든 디렉토리와 파일은 이 아래에 존재/bin바이너리 디렉토리기본 명령어 저장/boot부팅 파일부트로더(GRUB), 커널 이미지, 초기 RAM 디스크 (initrd) /dev장치 파일 디렉토리디스크, CPU, USB 등 하드웨어 인터페이스 제공/etc환경 설정 파일시스템, 애플리케이션 설정 파일 및 스크립트 저장/home사용자 홈 디렉토리사용자별 개인 파일 및 설정 저장/lib라이브러리 디렉토리실행 파일에 의존하는 필수 공유 라이브러리 저장/lost+found파일 복구 디렉토리복구된 파일 저장 (시스템 충돌이나 파일 손상 시 발생하는 파일들)/mnt임시 마운트 디렉토리임시 연결 (외부 장치나 원격 파일 시스템)/med..

OS/Linux 2021.08.06