[운영체제] 메모리 관리
·
CS/OS
전공 수업 내용 정리 (문제 발생시 비공개합니다.) 메모리 관리운영체제의 핵심 기능 중 하나인 메모리 관리는 프로세스가 실행되기 위해 필요한 메모리를 적절히 할당하고 관리하는 역할1. 페이징 (Paging) = 분산적재페이징은 프로세스의 주소 공간을 동일한 크기의 블록으로 나누어 메모리에 분산하여 적재하는 방법페이지(Page): 프로세스의 주소 공간을 동일한 크기의 블록으로 나눈 단위.프레임(Frame): 실제 물리적 메모리를 페이지와 동일한 크기로 나눈 블록.특징외부 단편화 없음: 모든 페이지와 프레임의 크기가 동일하기 때문에 외부 단편화 문제가 발생하지 않음주소 변환 필요: 논리 주소를 물리 주소로 변환하기 위해 페이지 테이블을 사용해야함논리 주소 구조:페이지 번호 (p): 논리 주소에서 상위 비트로..
[운영체제] 동기화
·
CS/OS
전공 수업 내용 정리 (문제 발생시 비공개합니다.)프로세스 동기화(Process Synchronization)여러 프로세스가 공유하는 자원의 일관성을 유지하는 것여러 프로세스가 서로 협력해 공유자원을 사용하는 상황에서 경쟁조건(race condition)이 발생하면 공유자원의 신뢰성이 떨어진다. 이를 방지하기 위해 프로세스들이 공유자원을 사용할 때 특별한 규칙을 만드는 것경쟁 상황(race condition)여러 프로세스(또는 스레드)가 공유자원에 동시에 접근할 때 공유자원에 대한 접근 순서에 따라 실행 결과가 달라질 수 있는 상황동시에 접근할 때 자료의 일관성을 해치는 결과가 나올 수 있다.임계구역(critical section)여러 프로세스 또는 스레드가 자원을 공유하는 상황에서 하나의 프로세스만 접..
[운영체제] 스레드
·
CS/OS
전공 수업 내용 정리 (문제 발생시 비공개합니다.) 스레드와 동기화프로세스와 스레드의 기본 개념프로세스실행 중인 프로그램의 인스턴스리소스 소유권의 단위이며 스케줄링/실행의 단위메모리, I/O 채널, I/O 장치, 파일 등의 리소스를 소유스레드프로세스 내의 실행 단위동일한 프로세스 내의 다른 스레드와 리소스를 공유경량 프로세스(lightweight process)라고도 불림멀티스레딩의 이점1. 응답성 향상프로그램의 일부가 블록되어도 계속 실행 가능I/O와 연산을 동시에 수행 가능RPC(원격 프로시저 호출) 등에서 동시 응답 처리 가능2. 리소스 공유와 비용 절감새로운 PCB 생성이 불필요프로세스 간 전환보다 스레드 간 전환이 빠름동일 프로세스 내 스레드들은 메모리를 통해 직접 통신 가능3. 병렬 처리멀티코..
[운영체제] 프로세스 스케줄링
·
CS/OS
전공 수업 내용 정리 (문제 발생시 비공개합니다.) 프로세스 스케줄링1. CPU 버스트와 I/O 버스트CPU 버스트: CPU가 작업을 실행하는 데 걸리는 시간I/O 버스트: CPU가 I/O를 대기하는 데 걸리는 시간CPU - I/O 버스트 주기: 각 프로세스 실행은 CPU 실행 및 I/O 대기 주기로 구성프로세스 유형에 따라 CPU 및 I/O 버스트가 변경될 수 있음.(a) CPU 기반: 긴 CPU 버스트 후 I/O 차단(b) I/O 기반: 짧은 CPU 버스트 후 I/O 차단2. 프로세서 스케줄링의 목적프로세서를 시스템 목표를 충족하는 방식으로 실행할 프로세스를 할당.3. 프로세서 스케줄링의 유형장기 스케줄링: 새로운 프로세스를 시스템에 진입시킬지 결정.중기 스케줄링: 멀티프로그래밍 정도를 제어하고 프로..
[운영체제] 프로세스 관리
·
CS/OS
전공 수업 내용 정리 (문제 발생시 비공개합니다.) 실행 모드대부분의 프로세서는 두 가지 이상의 실행 모드를 지원모드연산자메모리CPU 레지스터커널(시스템)모든 연산자 실행모든 곳 접근모든 레지스터 접근유저연산자 특권 없음내 메모리 영역만특수 레지스터 없음모드 스위치모드 스위치는 현재 실행 중인 프로세스의 상태를 변경하지 않고 사용자 모드와 커널 모드 간에 프로세서를 전환할 수 있다.이 과정에는 모드 컨텍스트 저장/복원에 따른 오버헤드가 포함됨.인터럽트비동기적인 외부 예외트랩현재 명령어 실행시스템 호출요청에 의해모드 스위치의 주요 원인인터럽트: 비동기적인 외부 예외트랩: 현재 명령어 실행 중 발생시스템 호출: 프로그램의 요청에 의해 발생프로세스 컨텍스트와 인터럽트 컨텍스트프로세스 컨텍스트: 프로그램이 시스..
[운영체제] 프로세스
·
CS/OS
전공 수업 내용 정리 (문제 발생시 비공개합니다.)프로그램과 프로세스프로그램: 디스크에 저장된 수동적인 엔티티(binary sequence)프로세스: 실행 중인 액티브 엔티티(execution sequence)프로세스의 구성 요소프로그램 코드: 실행될 명령어 집합관련 데이터 세트: 프로그램 실행에 필요한 데이터동적 저장공간 할당스택(Stack): 함수 호출 시 리턴 주소와 지역 변수를 저장 (LIFO 구조)힙(Heap): 동적 메모리 할당을 위해 사용실행 순서와 스택 구조스택 구조스택 포인터(Stack Pointer): 스택 최상단 원소의 주소스택 베이스(Stack Base): 스택 최하단 원소의 주소스택 리미트(Stack Limit): 스택 최대 크기 제한함수 호출 시 동작함수 호출 시 리턴 주소를 스..
[운영체제] 오퍼레이팅 시스템 개요
·
CS/OS
전공 수업 내용 정리 (문제 발생시 비공개합니다.)운영 체제 (Operating System)운영 체제는 컴퓨터 하드웨어와 응용 프로그램을 연결하는 프로그램으로,시스템 리소스를 동적으로 관리하고, 메모리 및 프로세스 스케줄링과 같은 작업을 수행합니다.운영 체제의 주요 목표편리성: 사용자가 시스템을 쉽게 사용할 수 있도록 함.효율성: 시스템 자원을 최대한 활용.발전성: 새로운 하드웨어 및 서비스에 적응할 수 있는 능력.운영 체제의 역할사용자와 컴퓨터 간 인터페이스 제공프로그램 생성, 파일 관리, I/O 장치 제어를 지원.프로그래머로부터 하드웨어 세부 정보를 마스킹.자원 관리자로서의 역할데이터 이동, 저장, 처리 등을 위한 자원을 관리.CPU 및 기타 시스템 리소스의 사용 타이밍을 조율.운영 체제의 진화운영..
[운영체제] 메모리
·
CS/OS
컴퓨터 메모리메모리: 데이터와 프로그램을 저장하는 중요한 컴퓨터 구성 요소메모리 설계 제약용량: 메모리 용량이 충분해야, 이에 맞는 애플리케이션 개발이 가능.비용 (비트당): 메모리 비용은 다른 구성 요소들과 합리적으로 균형을 맞춰야 함.액세스 시간: 빠른 액세스 시간으로 최상의 성능을 얻어야 함.현대 메모리 기술더 작은, 더 비싼 (비트당 비용이 높은), 더 빠른 메모리와더 크고, 더 저렴한 (비트당 비용이 낮은), 더 느린 메모리메모리 계층: 여러 메모리 기술을 계층적으로 사용하는 것이 중요!메모리 계층구조 (Memory Hierarchy)계층화: 작은, 빠른, 비싼 메모리는 크고 느린, 저렴한 메모리로 보충됨.프로세서와의 동기화: 효율적인 메모리 계층구조는 프로세서 속도에 맞춰야 한다.⭐⭐⭐⭐상위 ..
[운영체제] virtual box에서 ubuntu 설치 및 터미널 명령어 실행하기
·
CS/OS
운영체제 실습을 위해 필요한 터미널 명령어 정리  undefined reference to pthread ~ errorgcc -o 1 1.c -lpthread c파일 만드는 법 vim  파일명.c c파일에 입력하는 법i를 한 번 누르면 입력 모드로 전환됨 복사 붙여넣기 하는 법메모장에서 컨트롤 c 여기까진 오케이.터미널에서 붙여넣기 하려면 쉬프트 + 인서트키 c파일 입력 모드를 나가는 법esc 키 누르기 + :wq하면 저장후 나가짐 컴파일gcc -o 파일명 파일명.c 실행./파일명.c   참고 링크 [Virtual Box, VM] 가상머신 복사 붙여넣기 설정 하기(Ctrl + C, CTRL + V, Kernel Headers not Found Error까지)안녕하세요 리습입니다. Virtual Box 환..
[운영체제] 인터럽트
·
CS/OS
인터럽트 메커니즘인터럽트(Interrupt):OS에 현재 실행 중인 프로세스를 중단하고 인터럽트 핸들러를 실행하도록 알리는 이벤트.시스템의 효율성을 높이고 적시에 서비스를 제공하기 위해 사용됩니다.I/O 장치가 지속적으로 CPU를 폴링하는 대신, 필요할 때만 신호를 보낼 수 있게 합니다.시스템 타이머 인터럽트와 같은 특정 간격으로 발생하는 이벤트를 적시에 처리할 수 있게 합니다.인터럽트를 처리하기 위해 CPU는 커널 모드로 전환되며, 이 모드에서는 사용자 모드에서 접근할 수 없는 권한 있는 명령어와 메모리에 접근할 수 있습니다.인터럽트의 종류:프로그램 인터럽트: 프로그램 실행 중에 발생하는 예외적인 상황타이머 인터럽트: 일정 시간마다 발생하는 인터럽트입출력 인터럽트: I/O 장치와 관련된 이벤트하드웨어 ..
[운영체제] Overview
·
CS/OS
컴퓨터 시스템의 기본 구성요소처리기 (Processor): 중앙처리장치(CPU)주기억장치 (Memory): 휘발성 메모리, 셧다운 시 메모리 내용이 사라짐입출력 모듈 (I/O module): 컴퓨터와 외부 환경 간 데이터 전송버스 (Bus): 처리기, 메모리, 입출력 모듈 간의 데이터 전송을 위한 통로프로세서 (Processor)산술/논리 장치 (ALU, Arithmetic/Logic Unit): 수학적 계산과 논리적 비교를 수행하는 장치중앙 처리 장치 (CPU): 프로그램 명령어를 실행하는 주요 하드웨어ALU제어 장치 (Control Unit)레지스터 (Register)멀티프로세서 (Multiprocessors): 여러 개의 프로세서를 사용하여 성능을 향상시킨 시스템그래픽 처리 장치 (GPU): 대규모..