목록전체 글 (39)
나의 개발일기
가상 메모리 (Virtual Memory System) 메모리가 실제 메모리보다 많아 보이게 하는 기술 프로세스 간 공간 분리로, 프로세스 이슈가 전체 시스템에 영향을 주지 않을 수 있음 가상 메모리 기본 아이디어 프로세스는 가상 주소를 사용하고, 실제 해당 주소에서 테이터를 읽고/쓸 때만 물리 주소라 바꿔 주면 된다. virtual address (가상 주소) : 프로세스가 참조하는 주소 physical address (물리 주소) : 실제 메모리 주소 MMU (Memory Management Unit) CPU에 코드실행 시, 가상 주소 메모리 접근이 필요할 때, 해당 주소를 물리 주소값으로 변환해주는 하드웨어 장치 가상 메모리가 필요한 이유 여러 프로세스 동시 실행 시스템 하나의 프로세스만 실행 가능..
Thread (스레드) - 비동기 처리 Light Weight Process라고도 함 - 리눅스 프로세스 프로세스 간에는 각 프로세스의 데이터 접근이 불가 스레드 하나의 프로세스에 여러 개의 스레드 생성 가능 스레드들은 동시에 실행 가능 프로세스 안에 있으므로, 프로세스의 데이터를 모두 접근 가능 멀티 스레드 : 성능 개선 위해 기본적으로 고려하는 구조 Thread는 각기 실행이 가능한 stack 존재 Multi Thread (멀티 스레드) 소프트웨어 병행 작업 처리를 위해 Multi Thread를 사용함 최근에는 짧은 반응 시간이 우선이기 때문에, 성능 개선에 신경을 많이 씀 멀티 프로세스 또는 멀티 스레드를 고려함 멀티 프로세스보다 스레드를 자연스럽게 더 많이 사용함 멀티 프로세스는 처음 구조를 잡을..
프로세스 구조 프로세스 (process)는 일반적인 구성 text(CODE) : 코드 data : 변수/ 초기화된 데이터 stack : 임시 데이터 (함수 호출, 로컬 변수 등) heap : 코드에서 동적으로 만들어지는 데이터 컨텍스트 스위칭(Context Switching) CPU에 실행할 프로세스를 교체하는 기술 PC (Program Counter) : 다음 실행할 코드 주소 SP (Stack Pointer) : 스택 최상단 주소 PC, SP만 바꿔주면, 프로세스 저장상태를 기반으로 실행 가능 PCB (Process Control Block) - 프로세스 제어 블록 PCB에 다음 프로세스 정보를 저장 Process ID, Register (PC, SP 등) 등 프로세스가 실행 중인 상태를 캡처/구조화..
스케쥴링 알고리즘 어느 순서대로 프로세스를 실행할까? 목표에 따른 분류 시분할 시스템 : 프로세스 응답 시간을 가능한 짧게 멀티프로그래밍 : CPU 활용도를 최대한 높여서, 프로세스를 빨리 실행 FIFO스케줄러 (First In First Out) CPU를 처음부터 끝까지 사용 가장 간단한 스케쥴러 ( 배치 처리 시스템) 먼저 들어온 것부터 실행 최단 작업 우선(SJF) 스케쥴러 SJF(Shortest Job First) 스케쥴러 가장 프로세스 실행시간이 짧은 프로세스부터 먼저 실행시키는 알고리즘 우선순위 기반 스케쥴러 Priority-Based 스케쥴러 정적 우선순위 프로세스마다 우선순위를 미리 지정 동적 우선순위 스케쥴러가 상황에 따라 우선순위를 동적으로 변경 Round Robin 스케쥴러 프로세스 ..
운영체제 운영제체란 : OS (Operating System) OS는 더 정확히 커널(Kernel)을 의미함 커널에 여러 가지가 추가된 상태를 OS라고 통칭 쉘(Shell) 사용자가 운영체제 기능과 서비스를 조작할 수 있도록 인터페이스를 제공하는 프로그램 쉘은 터미널 환경(CLI)과, GUI 환경 두 종류로 분류 CLI (Command-Line Interface) - 터미널, cmd 문자열로 입력 GUI (Graphical User Interface) - 아이콘 그래픽으로 나타낸 것 시스템 콜(System Call) 응용 프로그램 인터페이스 제공 시스템 콜 또는 시스템 호출 인터페이스 운영체제가 각 기능을 사용할 수 있도록 시스템 콜이라는 명령 또는 함수를 제공 API (Application Progra..
Spring MVC구조 웹 계층 계층(layer)의 분리 Presentation Layer - Data를 보여주는 계층 (@Controller) 요청과 응답을 처리 데이터 유효성 검증 실행 흐름 제어 예외처리 Business Layer - @Service 비즈니스 로직 담당 트랜잭션 처리 예외처리 Persistence Layer(영속 계층) - Data Access Layer (DAO), @Repository -DB에서 가져오는 순수 Data Access 기능 ( DAO) 조회, 등록, 수정, 삭제 -CRUD 예외 처리 - 안 함, Service에 던짐 변경에 유리 → 인터페이스 이용 Spring MVC 패턴 관심사의 분리 Separation of Concerns(해야 할 작업) 하나의 메서드는 하나의 ..