분류 전체보기
-
[운영체제] 프로세스 VS 스레드 개념 및 예상 질문Computer Science/Operating System 2023. 2. 7. 12:24
프로세스 VS 스레드 구분 프로세스 스레드 사전적 의미 컴퓨터에서 실행되고 있는 컴퓨터 프로그램 - 메모리에 올라와 실행되고 있는 프로그램 인스턴스 프로세스 내에서 실행되는 여러 흐름의 단위 - 프로세스의 특정한 수행 경로 고유 할당 자원 Code, Data, Stack, Heap 프로세스 내에서 Stack만 따로 할당 특징 1. 프로세스 한 개당 최소 1개의 스레드를 가지고 있음 2. 각 프로세스는 별도의 주소 공간에서 실행되어 다른 프로세스의 변수나 자료구조에 접근 불가 3. 다른 프로세스 자원에 접근하려면 프로세스간 통신(IPC) 사용 필요 (파이프, 파일, 소켓 등) 1. 같은 프로세스 내의 여러 스레드들은 같은 힙 공간 공유 2. 한 스레드가 프로세스 자원을 변경하면 다른 이웃 스레드도 그 변경..
-
[운영체제] 프로세스의 구성, 상태, 시스템콜 등 총 정리Computer Science/Operating System 2023. 2. 7. 00:28
프로세스란? : 실행 중인 프로그램으로 디스크로부터 메모리에 적재되어 CPU의 할당을 받을 수 있는 것 - 가상 메모리 공간, 코드, 데이터, 시스템 자원의 집합(microsoft) - 하나 혹은 그 이상의 Thread로 실행되는 컴퓨터 프로그램의 instance - Process는 Program code와 그 activity를 포함 프로세스의 구성 PCB (Process Control Block) : 프로세스에 대한 정보는 프로세스 제어블록(PCB, Process Control Block) 또는 프로세스 기술자(Process descriptor)라고 부르는 자료구조에 저장 - 운영체제는 프로세스 관리를 위해 프로세스의 생성과 동시에 고유한 PCB를 생성하여 Kernel 영역에 저장 - 프로세스는 CPU..
-
[AWS] 유저가 업로드한 동영상에서 썸네일 이미지 추출하여 S3에 바로 저장하기 - JavaAWS/Cloud 2023. 2. 1. 23:31
들어가기 전 저어어엉말 관련한 글들을 찾기가 어려워서 힘들었는데.. 결국 성공! 하여 누군가에게 도움이 되길 바라며 정리해놓는다. [구현 하고 싶었던 기능] 1. 유저가 자신의 로컬 스토리지에서 영상을 업로드 2. 백에 MultipartFile 형태로 파일이 전달 3. 동영상을 바로 S3에 업로드 4. 동영상에서 썸네일 이미지만 추출하여 S3 업로드 [시도해본 것] 1. AWS MediaConvert - 미디어 컨버트를 활용해 S3 버킷을 인풋용/아웃풋용으로 나누고 인풋 버킷에 영상 파일이 업로드 되면, 미디어 컨버트를 통해 썸네일로 변환하여 아웃풋 버킷에 저장하도록 함 - 해당 방법은 아웃풋 버킷에 무조건 full video도 함께 저장하여야 하고.. 미디어 컨버트는 영상의 분 단위로 비용 책정을 해서..
-
[운영체제] 프로그램의 실행(memory load)과 메모리 주소Computer Science/Operating System 2023. 1. 30. 23:54
프로그램의 실행 - 프로그램은 File System에 실행 파일 형태로 저장되어 있고, 이를 실행하면 메모리에 올라가 프로세스가 됨 - 물리적인 메모리에 바로 올라가지 않고 가상 메모리 단계를 추가로 거치는데, 이 때 독자적인 메모리 주소 공간이 형성됨 - 메모리 낭비 방지를 위해 프로그램 중 당장 실행에 필요한 부분만 물리적 메모리에 올라가고, 그렇지 않은 부분은 스왑 영역에 들어감 프로세스의 메모리 주소 공간 Code : CPU에서 실행할 기계어 코드 저장 Data : 전역 변수 등 프로그램에 사용하는 데이터 저장 Stack : 함수가 호출될 때 호출된 함수의 수행을 마치고 복귀할 주소 및 데이터를 임시로 저장 커널 주소 공간 Code : 시스템콜, 인터럽트 처리 코드와 자원 관리를 위한 코드 저장 ..
-
[운영체제] DMA(Direct Memory Access) 개념과 동작 방법Computer Science/Operating System 2023. 1. 30. 23:22
기본적인 입출력 제어 방식 - 하드디스크에서 데이터를 꺼낸 후 시스템 버스를 통해 CPU 레지스터에 옮겨지고 다시 시스템 버스를 통해 CPU 레지스터에서 메모리로 이동 - 모든 메모리 접근 연산이 CPU에 의해서만 이루어질 경우 주변 장치가 메모리 접근을 원할 때마다 인터럽트를 통해 CPU의 업무가 방해 받게 되어 사용 효율성이 떨어짐 DMA(Direct Memory Access) 방식 - CPU가 주변 장치들의 메모리 접근 요청에 의해 자주 인터럽트 당하는 것을 방지 - DMA 컨트롤러가 입출력장치에서 데이터를 읽은 후 메모리로 전송하고 전송 완료 신호를 CPU에 송신
-
[운영체제] 동기식 입출력과 비동기식 입출력Computer Science/Operating System 2023. 1. 30. 23:06
입출력 (I/O) : 컴퓨터 시스템이 컴퓨터 외부의 주변 장치들과 데이터를 주고 받는 것을 의미 동기식 입출력 (Synchronous I/O) : I/O 요청 후 입출력 작업이 완료된 후 제어가 사용자 프로그램에 넘어감 (순차적) ex. 프로그램이 디스크에서 어떤 정보를 읽어서 처리를 해야 하는 경우 구현 방법 1. - 입출력이 끝날 때까지 인터럽트를 기다렸다가 끝나면 사용자 프로그램에 CPU의 제어권이 넘어가 다음 명령어 수행 가능 - 매 시점마다 하나의 CPU만 일을 하며, 하나의 입출력만 일어날 수 있음 ➡️ CPU 낭비 구현 방법 2. - 입출력이 완료될 때까지 해당 프로그램에서 CPU의 제어권을 빼앗음 (해당 프로그램은 봉쇄 상태) - 입출력 처리를 기다리는 줄에 해당 프로그램을 세우고 다른 프..
-
[Java Spring] Spring Security의 개념 및 처리 과정Programming/Java 2023. 1. 24. 17:00
들어가기에 앞서 인증(Authentication)과 인가(Authorization) - 인증(Authentication) : 해당 사용자가 본인이 맞는지 확인하는 과정 - 인가(Authorization) : 해당 사용자가 요청하는 자원을 실행할 수 있는 권한이 있는가를 확인하는 과정 ➡️ Spring Security는 인증 절차를 거친 후 인가 절차를 진행 ➡️ Principal을 아이디로 Credential을 비밀번호로 사용하는 Credential 기반 인증 방식 사용 Principal(접근 주체) : 보호 받는 Resource에 접근하는 대상 Credential(비밀번호) : Resource에 접근하는 대상의 비밀번호 Spring Security란? : Spring 기반의 어플리케이션 보안(인증과 ..
-
[컴퓨터 구조] CPU의 구조 및 CPU VS GPUComputer Science/Computer Architecture 2023. 1. 24. 16:00
CPU란? : 명령어를 해석, 연산, 결과를 저장하는 등의 수행을 하는 유닛 Core란? : CPU 역할을 수행하는 블록 - 한 개의 CPU 칩에 한 개의 코어가 있으면 싱글코어, 코어 개수에 따라 prefix가 달라짐(듀얼코어 등) Core의 구성요소 1. 제어 장치 (CU, Control Unit) : 명령어 레지스터(메모리)에 저장된 명령어를 가져와 해석 후 명령어 실행을 지시할 제어 신호 생성 - 프로그램 계수기(프로그램 순서 제어), 명령 레지스터(명령어 임시 기억), 명령해독기(레지스터의 명령을 해독하여 수행 장치에 제어 신호를 보냄)로 구성 2. 연산 장치 (ALU, Arithmethic Login Unit) : 제어 장치의 지시를 받아 산술, 논리, 비트 연산 등 실제 연산을 수행하는 장치..