본문 바로가기

프로그램3

[운영체제] 4. 스레드 관리 - (1) 스레드의 필요성과 개념 📍1. 스레드의 필요성 ☑️ 프로세스를 수행 단위로 하는 멀티프로그래밍의 문제점 1️⃣ 프로세스 생성의 큰 오버헤드- 프로세스를 위한 메모리 할당, 부모 프로세스로부터 코드와 데이터 복사- PCB 생성, 매핑 테이블(페이지 테이블) 생성 등 2️⃣ 프로세스 스위칭(process switching) 시 큰 오버헤드 - 기존 프로세스 컨텍스트를 PCB에 저장, 새 프로세스 PCB 갱신 및 CPU 레지스터로 복원- CPU가 참고할 매핑 테이블(페이지 테이블)의 교체 시간- CPU 캐시에 새 프로세스의 코드와 데이터가 채워지는데 걸리는 시간 등3️⃣ 프로세스 사이 통신의 어려움- 프로세스가 다른 프로세스의 메모리에 접근 불가- 커널 메모리나 커널에 의해 마련된 메모리 공간을 이용하여 데이터 송수신- 이 방법.. 2025. 4. 17.
[운영체제] 3. 프로세스 관리 - (3) 프로세스의 계층 구조 !!여기도 마인드맵!!  📍1. 프로세스 정보 보기1-1. Linux 쉘 명령으로 프로세스 정보 보기  1-2. Linux에서 C프로그램으로 PID와 PPID 알아내기e.g.) 시스템 호출 함수 getpid(), getppid()를 이용하여 PID와 PPID를 얻어내는 C프로그램 작성하기#include // printf()를 사용하기 위한 헤더#include // pid_t 타입을 정의하는 헤더#include // getpid(), getppid() 시스템 호출 선언int main(void) { pid_t pid, ppid; // PID를 저장할 변수들 선언 pid = getpid(); // ① 현재 프로세스의 PID 얻기 ppid = getppid(.. 2025. 4. 11.
[운영체제] 3. 프로세스 관리 - (1) 프로세스 개요 수업> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!마인드맵!!!!!!!!!!!!!!!!!!!!!!!!!!!! 📍1. 프로세스 개요1-1. 프로세스의 의미 ✔️ 다중프로그래밍 운영체제에서 발생하는 에러의 원인들은 프로세스 간    1️⃣ 부적절한 동기화*(improper synchronization)    2️⃣ 상호배제** 실패(failed mutual exclusion)    3️⃣ 비결정적인 프로그램 연산***(nondeterminate program operation)    4️⃣ 교착상태 발생(deadlocks)* 부적절한 동기화: 프로그램 실행이 보류된 상태에서 동기화를 잘못 수행해 신호가 분실되거나 중복되는 것 **상호배제: 동시에 실행되는 프로세스가 공유 자원을 동시에.. 2025. 4. 11.