본문 바로가기

분류 전체보기57

[CS] 스레드(thread) 간략 정리 📖 스레드 정리 하나의 프로세스에 여러 개의 스레드 생성 가능하다. 스레드들은 동시에 실행 가능하다. 프로세스 안에 있으므로, 프로세스의 데이터를 모두 접근 가능하다. ✅ 스레드의 장단점 📌 스레드 장점 사용자에 대한 응답성 향상 작업을 분할함으로써 속도를 향상해 사용자에 대한 빠른 반응이 가능하다. 자원 공유 효율 IPC 기법과 같이 프로세스 간 자원 공유를 위해 번거로운 작업이 필요 없다. 프로세스 안에 있으므로, 프로세스의 데이터를 모두 접근 가능하다. 작업이 분리되어 코드가 간결 하지만 작성하기 나름이다. 📌 스레드 단점 여러개의 스레드 중 한 스레드만 문제가 돼도, 전체 프로세스가 영향을 받는다. 스레드를 많이 생성하면, Context Switching이 많이 일어나, 성능이 저하된다. 이 단점.. 2023. 2. 22.
[CS] 프로세스 구조 이해 ✅ 프로세스(process) 구성요소 text(CODE) : 코드 data : 변수/초기화된 데이터 stack : 임시 데이터(함수 호출, 로컬 변수등) heap: 코드에서 동적으로 만들어지는 데이터 ✅ 프로세스와 컴퓨터 구조 연관 관계 컴퓨터 구조에서 우리는 두 용어를 만나게 된다. PC(Program Counter) + SP(Stack Pointer) 둘 다 레지스터이며, 용어들의 의미를 보자면 PC : 다음 실행할 코드 주소를 가리킨다. SP : 스택 최상단 주소를 가리킨다. 를 뜻한다. 두 개를 활용하여 임베디드 시스템 등에서 동작하는 C프로그램등은 디버깅에 사용된다. 💡 파이썬에서 재귀함수 호출이 일정 횟수 이상이면 에러 나는 이유 고정된 스택 공간 때문이다. 📖 힙과 콘텍스트 스위칭 이해 ✅ .. 2023. 2. 19.
[CS] 운영체제 스케줄링 기본 및 알고리즘 이해 📖 운영체제 스케줄링 종류 ✅ 시분할 시스템 응용 프로그램이 CPU를 점유하는 시간을 잘게 쪼개어 실행될 수 있도록 하는 시스템이며 다중 사용자도 지원한다 ✅ 멀티 태스킹 단일 CPU에서, 사람이 인지하기 힘든 시간 10 ~ 20ms 단위로 실행 응용 프로그램을 바꿔 여러 응용 프로그램이 동시에 실행하는 것처럼 보이게 하는 시스템. ✅ 멀티프로그래밍 최대한 CPU를 일정 시간당 많이 활용하는 시스템 CPU를 활용한다는 말의 의미를 알아보자면, 어떤 프로세스를 실행시키는데 레지스터나 캐시 같은 메모리가 아닌 SSD, HDD 같은 저장매체에서 데이터가 필요해 가져오는 동안 CPU가 대기를 하는 일이 발생한다면 그 시간 동안 비효율이 발생한다. 그래서 효율적으로 그 대기 시간 안에 다음 진행할 프로세스를 먼저.. 2023. 2. 19.
[CS] 프로세스 개념 이해 📖 프로세스 란? 실행 중인 프로그램을 프로세스라고 한다. 프로세스 : 메모리에 올려저서, 실행 중인 프로그램 코드 이미지(바이너리) : 실행 파일 응용 프로그램과 프로세스는 같은 말이 아니며 응용 프로그램은 여러 프로세스로 구성 가능하다. 예를 들어, 스마트폰에 최근 띄운 앱들을 확인하는 기능이 있는데 그렇게 띄워진 앱들을 다 프로세스라 할 수 있다. 프로세스의 실행과 정지도 운영체제가 관여를 하는데 이러한 운영체제 기능을 프로세스 스케줄링 이라고 한다. ✅ 프로세스 스케줄링 여러개의 프로세스가 띄어져 있을 때 어느 시점에서 어떤 프로세스를 실행시킬지 규칙 알고리즘이 필요했는데 그걸 가리켜 프로세스 스케줄러 라고 한다. ✅배치 처리 시스템 맨 처음 스케줄링 알고리즘에 채택된 자료구조 큐를 활용한 알고리.. 2023. 2. 19.