[운영체제] 스레드 동기화
스레드 동기화의 필요성 1) 동기화의 필요성 다수의 스레드가 동시에 공유 데이터 접근 → 공유데이터의 훼손 스레드 동기화 (thread synchronization) 공유데이터에 대한 다수의 스레드가 동시에 접근할 때 공유데이터가 훼손되는 문제의 해결책 공유데이터를 집근하고자 하는 다수의 스레드가 충돌없이 공유데이터에 접근하기 위해 상호 협력하는 것 2) 공유데이터 접근 문제의 해결책 여러 스레드가 공유 변수에 접근할 때, 공유 데이터 훼손 스레드 동기화 → 한 스레드가 공유데이터의 접근을 마칠 때까지 → 다른 스레드가 공유데이터를 접근하지 못하도록 제어 멀티 스레드의 경쟁 상황이 자주 발생 → 커널 안의 공유 데이터가 많아 자주 발생, 다중 코어에 더욱 조심해야함 3) 임계 구역과 상호 배제 #1 임계..
- Computer Science/Operating System
- · 2023. 7. 16.
First Come First Served (FCFS) 구현
First Come First Served #1 입력 첫째 줄 : 입력 받을 스레드 개수 각 스레드 별 입력 데이터 첫 번째 - 스레드 번호 두 번째 - 도착 시간 세 번째 - CPU 사용 시간 입력 예제 4 0 0 40 1 10 25 2 20 30 3 25 5 #2 출력 각 스레드의 대기시간과 완료시간 출력 출력 예제 0 40 30 65 45 95 70 100 #3 구현 #include #include #include using namespace std; struct thr { int num; // 스레드 번호 int start_t; // 스레드 도착 시간 int run; // CPU 사용시간 }; int n; // 입력받을 스레드 개수 저장 vector v; // 대기시간, 완료시간 저장 벡터 que..
- Computer Science/Operating System
- · 2023. 7. 11.
[운영체제] CPU 스케줄링
CPU 스케줄링 개요 1) 운영체제에서 일어나는 스케줄링 #1 자원에 대한 스케줄링 자원에 대한 경쟁이 있는 컴퓨터 시스템 여러 곳에서 발생 #2 다양한 스케줄링 작업 스케줄링 : 대기 중인 배치 작업 중 어떤 작업을 메모리에 적재할지 CPU 스케줄링 : 프로세스/스레드 중에 하난를 선택하여 CPU를 할당하는 스케줄링 디스크 스케줄링 : 디스크 장치 내에서 디스크 입출력 요청 중 하나를 선택 프린터 스케줄링 : 프린팅 작업 중 하나를 선택하여 프린터 할당 2) 다중프로그래밍과 스케줄링 CPU의 유휴시간을 줄이기 → CPU 활용률 향사어 작업 스케줄링과 CPU 스케줄링 도입 3) CPU burst I/O burst cpu burst : 프로그램 실행 중 cpu 연산이 연속적으로 실행하는 상황 I/O bur..
- Computer Science/Operating System
- · 2023. 7. 11.
[운영체제] 스레드와 멀티스레딩
프로세스의 문제점 1) 프로세스를 다루는 문제점 프로세스 생성의 큰 오버헤드 발생 ← 프로세스를 위한 메모리 할당 프로세스 컨텍스트 스위칭의 큰 오버헤드 ← cpu가 참고할 매핑 테이블 전환에 따른 지연 프로세스 사이의 통신 어려움 ← 프로세스들은 완전한 독립적인 주소 공간을 소유 스레드 개념 1) 스레드 출현 목적 프로세스보다 더 작은 실행 단위의 필요성 프로세스 생성 및 소멸에 따른 오버헤드의 감소 필요 빠른 컨텍스트 스위칭 필요 프로세스의 복잡한 통신, 느린 실행 속도, 코딩의 어려움 해소 2) 스레드 개념 #1 스레드는 실행, 스케줄링 단위 스레드는 개발자에게 작업을 만드는 단위, 운영체제에는 실행 단위, cpu를 할당하는 스케줄링 단위 코드, 데이터, 힙, 스택을 가진 실체 스레드마다 정보를 저..
- Computer Science/Operating System
- · 2023. 7. 10.
[운영체제] 프로세스와 프로세스 관리
프로세스 개요 1) 프로세스 프로그램: 하드디스크 등의 저장 매체에 저장되며 실행 파일의 형태를 가짐 #1 프로세스 프로그램이 메모리에 적재되어 실행 중인 상태 필요한 모든 자원을 할당 ( 코드공간, 데이터공간, 힙공간, 스택공간 ) #2 프로세스의 특징 운영체제는 프로그램을 메모리 적재하고 프로세스로 다룸 운영체제는 프로세스에 필요한 메모리를 할당 프로세스는 서로 독립적인 메모리 공간을 가짐 커널은 각 프로세스의 메모리 위치와 크기 정보를 관리 커널은 프로세스마다 고유한 번호 (PID) 할당 프로세스의 정보는 커널이 관리 프로세스는 실행-대기-잠자기-대기-실행-종료 등의 생명 주기 프로세스 생성, 대기, 종료 등의 관리는 모두 커널에 의해 수행 #3 프로세스 관리 프로세서의 생성에서 종료까지 관리는 모..
- Computer Science/Operating System
- · 2023. 7. 9.
[운영체제] 컴퓨터 시스템과 운영체제
1. 컴퓨터 시스템과 하드웨어 1) 컴퓨터 시스템 계층 구조 응용 소프트웨어 - 운영체제 - 컴퓨터 하드웨어 계층 구조의 특징 사용자는 응용프로그램을 통해 컴퓨터 활용 하드웨어는 모두 운영체제의 배타적 독점적 지배를 받음 사용자나 응용프로그램의 하드웨어 직접 접근 불허 사용자가 하드웨어에 대해 몰라도 컴퓨터 사용 가능 2) 컴퓨터 하드웨어 (1) CPU 프로그램 코드, 기계명령을 해석하여 실행하는 중앙처리장치 컴퓨터의 가장 핵심으로 전원 공급시 동작하며 메모리에 적재된 프로그램 실행 (2) 메모리 cpu에 의해 실행되는 프로그램 코드와 데이터가 적재되는 공간 실행되기 위해 반드시 메모리에 적재되어야 함 (3) 캐시 메모리 cpu 처리속도의 빠른 발전으로 대기시간 증가 → 캐시 메모리로 cpu 실행 속도를..
- Computer Science/Operating System
- · 2023. 7. 8.