[운영체제] 스레드와 멀티스레딩
프로세스의 문제점 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.
[운영체제] 운영체제의 시작과 발전
1. 운영체제 개념 1) 운영체제 정의 운영체제 : 컴퓨터 사용자와 컴퓨터 하드웨어 사이에서 중계 역할을 하면서, 프로그램 실행을 관리하고 제어하는 시스템 소프트웨어 컴퓨터가 켜질 때 처음으로 적재되어 나머지 모든 프로그램의 실행을 제어하고 사용자의 요청을 처리하는 소프트웨어 컴퓨터의 자원을 독점적으로 관리하는 특별한 소프트웨어 2) 운영체제의 목적과 기능 운영체제의 목적 컴퓨터 사용의 편리성 컴퓨터 자원관리의 효율성 운영체제의 기능 CPU/프로세스 관리 메모리 관리 파일 시스템 관리 장치 관리 네트워크 관리 보안 관리 기타 관리 (사용자 계정 관리, 통계, 오류 발견 및 대응, 부팅) 3) 운영체제와 응용소프트웨어 운영체제 응용소프트웨어 목적 컴퓨터 하드우어나 응용소프트웨어 등 자원 관리 컴퓨터 사용자..
- Computer Science/Operating System
- · 2023. 7. 7.
다이나믹 프로그래밍 (2) - P/NP,플로이드-워셜 알고리즘
1. P와 NP 입력 데이터 크기가 증가함에 따라 문제 해결의 복잡도가 어느 정도까지 향상되는지 파악 P 문제 : 다항 시간내에 해답을 구할 수 있음을 의미 시간 복잡도가 $O(n), O(n^2), O(log n)$ NP 문제 : 비결정적 다항 시간문제 주어진 문제의 솔루션을 검증하는 것은 쉬우나 실제 솔루션을 만드는 일은 매우 어려움 NP의 많은 문제들은 NP-완전으로 알려져 있음 특별한 특성을 공유 다항 시간처럼 효율적으로 해결하는 솔루션이 발견 → 다른 문제에도 적용 가능 2. 부분집합의 합 문제 다시보기 특정 부분집합에 대한 유효성 검증은 각 부분집합의 원소를 모두 더하여 목표치와 같은지를 검사하는 방식 검증에 대한 복잡도는 부분집합 크기에 대해 선형 관계 만족 부분집합의 합 문제를 O(n*m) ..
- Computer Science/Data Structure & Algorithm
- · 2023. 7. 6.
다이나믹 프로그래밍 (1) - 부분집합의 합 / 문자열 시퀀스
0. 들어가며 분할 정복 패러다임 개념을 확장 매우 복합적이며 창의력과 인내심, 추상적 개념을 시각화하는 능력을 요구하는 경우가 많음 다이나믹 프로그래밍이 자주 사용되는 몇 가지 예 조합 (특정 기준을 만족하는 시퀀스의 조합 또는 순열의 개수 구하기) 문자열과 시퀀스 (편집 거리, 최장 공통 부분 시퀀스, 최장 증가 부분 시퀀스) 그래프 (최단 경로 문제) 머신러닝 (음성/얼굴인식) 1. 동적 계획법(Dynamic programming)이란? 피보나치 수열을 통한 동적 계획법 설명 피보나치의 재귀조건 : $F(n) = F(n-1) + F(n-2)$ 피보나치의 기저조건 : $F(0) , F(1)$ 하향식 방법 : 재귀 트리의 맨 꼭대기서 시작하여 기저 조건에 닿을 때까지 이동 피보나치의 경우 여러 개의 부..
- Computer Science/Data Structure & Algorithm
- · 2023. 7. 5.