본문 바로가기
반응형

스레드4

리눅스(Linux) 프로세스의 작동 프로세스의 생애 주기(Process Life cycle)프로세스를 운영체제 안에서 살아가는 생물이라고 보면 이해라기 쉽다. 우리가 지구라는 환경에서 살아가듯 프로세스는 운영체제라는 세계 안에 존재한다. 어떤 종의 개체가 태어나고 죽듯이 프로그램이 실행되면 프로세스가 생성되고 소멸된다.현실 세계 : 컴퓨터 시스템지구 : 운영체제생물의 종류 : 프로그램의 종류생명의 탄생 : 프로세스의 생성생명의 죽음 : 프로세스의 소멸사용자가 계산기 프로그램을 켭니다. 프로그램이 실행되며 프로세스가 생성된다. 이 프로세스는 계산기 프로그램을 실행하는데 필요한 여러 정보를 관리하는 객체이다. CPU가 프로그램을 실행하려면 프로그램의 실행 코드가 메모리에 적재되어야 한다. 그리고 메모리에 적재된 코드 정보는 프로세스에 저장하고.. 2025. 1. 31.
C# Web API 구조 - 비동기, 멀티스레드, 쓰레드 풀 C# Web API의 구조에 대해서C# Web API은 비동기, 멀티스레드, 스레드 풀을 다 사용한다. 비동기, 멀티스레드, 쓰레드 풀을 사용하면 애플리케이션의 성능, 응답성, 확장성을 크게 향상할 수 있기 때문이다. 각 개념의 장점과 이를 사용할 때의 이점에 대해서 알아보자.비동기(Asynchronous)비동기 프로그래밍은 작업이 완료될 때까지 스레드가 대기하지 않고, 그동안 다른 작업을 처리할 수 있도록 하는 방식이다.C#이 제공하는 async/await 패턴을 사용하여 CPU 사용률을 최적화 할 수 있다.높은 처리량 : CPU가 대기 중인 작업을 처리하는 대신 다른 작업을 수행I/O 작업 최적화 : 비동기 방식은 CPU를 차단하지 않고, 네트워크 요청 또는 파일 읽기/쓰기를 기다리는 동안 다른 작업.. 2025. 1. 3.
C# 비동기 프로그래밍으로 반응성 개선하기 반응형 응용 프로그램 개발 .NET 프레임워크 발표 당시에는 순차적으로 실행되는 프로그램 흐름을 따랐다. 이런 실행 흐름은 다음 작업을 실행하기 전에 무조건 현재 진행 중인 작업이 끝나야 한다는 단점을 갖는다. 이로 인해 프로그램이 멈춘 것처럼 보이는 등 사용자에게 좋지 않은 인상을 주게 된다. .NET 프레임워크는 이 문제점을 해소하려는 목적으로 운영체제가 독자적으로 스케줄링할 수 있는 최소 실행 단위인 스레드를 도입했다. 비동기(asynchronous) 프로그래밍이란 독립된 스레드가 특정 작업을 처리하게 함으로써 원래의 스레드가 멈추는 것을 막고 다른 작업들을 처리할 수 있게 하는 것이다. 동기식 프로그램 실행 먼저 모든 작업을 동기적으로 수행하는 프로그램을 만들어보는 것부터 시작하자. static .. 2024. 4. 11.
스레드(Thread)란 스레드(Thread)란?오늘날의 운영체제들은 프로세스를 효율적으로 사용하고, 작업의 유연성을 얻기 위해 멀티스레드를 지원한다.스레드의 정의프로세스가 생성되면 CPU 스케줄러는 프로세스가 해야 할 일을 CPU에 전달하고, 실제 작업은 CPU가 수행한다. 이때 CPU 스케줄러가 CPU에 전달하는 일 하나가 스레드이다. 그러므로 CPU가 처리하는 작업 단위는 프로세스로부터 전달받은 스레드인 것이다. 운영체제의 입장에서 작업 단위는 프로세스이고, CPU입장에서의 작업 단위는 스레드인 것이다.따라서 프로세스 입장에서는 스레드를 다음과 같이 정의할 수 있다. 스레드 : 프로세스의 코드에 정의된 절차에 따라 CPU에 작업 요청을 하는 실행 단위.작업(job)의 크기크기 순서로 나열하면 다음과 같다.Thread(ope.. 2023. 7. 31.