Thread(스레드) 개념 이해하기
생성했던 Thread 를 버리지 않고 리스트에 저장해둔다. ackage com.eomcs.concurrent.ex7 Exam0110 Exam0520 복습하기 adps신청하느라 못함 Executor 인터페이스를 구현한 ThreadPoolExecutor 클래스를 사용하여 클래스를 생성합니다. 무명 클래스를 사용하여 Runnable 인터페이스를 구현하고 있는 객체를 생성해줍니다.
스레드 실행 기본 개념
네임스페이스 System.Threading 다중 스레드 프로그래밍을 가능하게 하는 클래스와 인터페이스를 제공합니다. System.Threading.Thread 스레드를 만들고 제어하며, 해당 속성을 설정하고, 상태를 가져옵니다. 스레드 활용 방법 스레드 인스턴스를 생성합니다. 생성자 의 매개변수로 스레드로 동작 할 로직을 전달합니다. 인스턴스를 명시적으로 실행합니다. 스레드 동작 이해 프로그램이 실행되면, 프로세스는 최소 하나의 실행 흐름스레드을 가진다.
프로그램의 실행 시작점은 메인 함수입니다. 메인 함수도 내부에 소스 코드로 이루어진 로직을 갖고 있습니다.
컨텍스트 스위칭context switching
A 프로세스를 CPU에서 처리하고 있었으나 이를 중단하고 인터럽트로 인해 발생한 B 프로세스를 처리해야 할 때 즉, A 프로세스 B 프로세스 전환 과정을 컨텍스트 스위칭이라고 합니다. CPU가 멀티 코어일 경우에는 B 프로세스를 다른 코어에서 실행하면 되겠지만 싱글코어일 경우 컨택스트 스위칭을 통해 프로그램을 실행시켜야 하고 이로 인해 캐시미스가 발생할 있습니다.
프로세스 동기화
경쟁 상태여러 프로세스 혹은 스레드가 하나의 데이터베이스에 한꺼번에 접근하여 데이터를 수정하면 경쟁 상태가 되며 오류가 발생할 수 있어 프로세스 동기화가 필요합니다. 하나의 게임 케릭터에 한꺼번에 접속하면 에러가 발생하듯이. 교착 상태프로세스 혹은 스레드가 서로의 자원을 기다리면서 영구적으로 진행되지 못하는 상태 임계 영역경쟁 상태가 되어 데이터의 일관성을 깨드릴 수 있는 코드 영역프로그램이 실행되는 부분을 임계 영역이라고 합니다.
뮤텍스mutex Lock 선언을 통해 공유 자원을 사용하지 못하도록 잠그고 사용을 해야만 되는 프로세스 에서 뮤텍스 잠금을mutex.acquire 선언을 통해 해제하는 프로세스 동기화 방법입니다.
메모리 관리
다수의 프로세스를 실행하려면 한정된 메모리 공간에 많은 프로세스를 로드할 수 있어야 합니다. 따라서 메모리 공간을 효율적으로 활용하기 위한 여러 방안이 고안되었습니다. 페이징프로세스가 할당받은 논리 메모리 영역 페이지, PC가 갖고 있는 RAM 전체 물리 메모리 영역 프레임페이지와 프레임의 크기가 서로 동일하게 잘게 나눈다. 페이지와 프레임에 하나하나씩 번호를 할당하고 서로 매핑합니다. 필요 페이징프로세스에서 필요한 페이지만 메모리에 로드하는 방식입니다.
필요하지 않은 페이지는 디스크에 저장합니다. 관리는 간단해지지만 페이지 폴트가 발생할 수 있어 오히려 프로세스의 실행 속도는 느려진다. 페이지 폴트 프로세스가 메모리에 없는 데이터에 접근하려고 할 때 생겨나는 오류입니다. 프로세스가 처음 실행될 때, 프로세스가 실행되는 동안 페이지 폴트가 발생합니다.
DMA 컨트롤러
대표적인 입출력 제어 방식Polling 예를 들어 하드디스크 에서 데이터를 꺼낼때 하드 rarr CPU 레지스터 rarr 메모리로 옮겨지는 계획을 쓰는데 입출력 시간 동안 CPU는 계속 대기경우에 있어야 하여 처리할 게 많은 CPU 입장에서는 큰 낭비입니다.
DMA(Direct Memory Access, 직접 메모리 접근)DMA는 I/O(하드디스크, 그래픽 카드 등)들이 메모리에 직접 접근하여 읽거나 쓸 수 있도록 하는 대부분의 AP(or MCU)에서 제공되는 기능입니다.
CPU는 제어 신호만 주고 받는 역할을 하며 이전 CPU가 하는 데이터 저장 및 전달을 DMA 컨트롤러가 대신하게 됩니다.
사용법사용법
스레드에 접속하셨다면 사진과 같이 상단 점 3개 부분은 게시글 숨기기, 게시글 계정 차단, 신고 항목이 있습니다. 하단 좌측부터 팔로우 게시글 창, 검색 창, 글쓰기 창, 활동 창, 나의 계정 창으로 나눠져 있습니다. 게시글 창홈 버튼 나의 팔로우가 작성한 글 자기가 작성한 글 및 현재 반응이 좋은 게시글이 노출되는 곳입니다. 다른 사람의 계정을 검색하고 팔로우할 수 있는 곳입니다. 다른 사용자에게 다이렉트 메시지DM 불가인스타와 차별된 점 글쓰기 창 나의 글을 작성할 수 있는 창으로 글쓰기 창에는 다음과 같이 제한이 있습니다.
자주 묻는 질문
스레드 실행 기본 개념
네임스페이스 System. 궁금한 사항은 본문을 참고하시기 바랍니다.
컨텍스트 스위칭context
A 프로세스를 CPU에서 처리하고 있었으나 이를 중단하고 인터럽트로 인해 발생한 B 프로세스를 처리해야 할 때 즉, A 프로세스 B 프로세스 전환 과정을 컨텍스트 스위칭이라고 합니다. 자세한 내용은 본문을 참고하시기 바랍니다.
프로세스 동기화
경쟁 상태여러 프로세스 혹은 스레드가 하나의 데이터베이스에 한꺼번에 접근하여 데이터를 수정하면 경쟁 상태가 되며 오류가 발생할 수 있어 프로세스 동기화가 필요합니다. 궁금한 내용은 본문을 참고하시기 바랍니다.