비전공자에서 주니어 개발자까지
close
프로필 배경
프로필 로고

비전공자에서 주니어 개발자까지

  • 분류 전체보기 (86)
    • 개발 도서 (15)
    • 스프링 (12)
    • 코테대비 (0)
    • CS (2)
      • 네트워크 (9)
      • 데이터베이스 (11)
      • 운영체제 (13)
    • 개발 (20)
  • 글쓰기
  • 설정

자바에서 제공하는 안전한 멀티 스레드 환경 - 1 (소개)

스레드란?자바에서 의미하는 스레드를 알아보기 전에 가장 기초가 되는 운영체제 측면에서 스레드를 알면 이해하기 쉽다. 스레드는 프로세스 내에서 실행되는 가장 작은 실행 단위를 의미한다.컴퓨터의 운영체제는 여러 프로세스를 동시에 실행할 수 있는데, 하나의 프로세스 역시 여러 스레드로 나뉘어 동시에 작업을 수행할 수 있다.더보기프로세스는 운영체제에서 실행 중인 프로그램을 의미한다.단순히 하드디스크에 저장된 정적인 파일 형태의 프로그램과는 다르게, 실행을 위해 메모리에 올라와서 CPU 자원을 할당받아 명령어를 수행하는 동적인 상태를 말한다.위 설명만 들으면 매우 복잡하고 어렵게 느껴질 수 있지만, 프로세스는 카페 스레드는 바리스타라고 생각할 수 있다. 단일 스레드와 멀티 스레드의 차이점우리가 쓰는 컴퓨터에서의 ..

  • format_list_bulleted CS
  • · 2025. 9. 16.
  • textsms

JVM과 JVM 메모리 구조

JVM이란?Java Virtual Machine의 약자로 직역하면 자바 가상 머신이다.자바 가상 머신이라는 의미를 알기 위해선 프로그래밍 언어를 컴퓨터가 어떻게 읽고 이해하는지 알면 이해하기 쉽다.컴퓨터는 기계어(0, 1)만 직접 이해할 수 있기 때문에 사람이 쓰는 언어인 Java, C, Python 등을 직접 이해하지 못한다.따라서 사람이 작성한 소스 코드는 번역 과정을 거쳐야 한다.먼저 C나 C++ 같은 언어는 컴파일러가 소스 코드를 한 번에 기계어로 바꿔서 실행 파일을 만든다.파이썬, 자바스크립트 같은 언어는 인터프리터가 코드를 한 줄씩 읽으면서 실행한다.하지만 자바는 위 두 개의 방식을 절충해 하이브리드 언어라고도 불리는데 이유는 다음과 같다.먼저 소스를 바이트코드 라는 중간 형태로 컴파일하고, ..

  • format_list_bulleted CS
  • · 2025. 9. 7.
  • textsms
교착상태(DeadLock)

교착상태(DeadLock)

교착상태 두 개 이상의 프로세스나 스레드가 서로 자원을 얻지 못해 다음 처리를 하지 못하여 무한히 다음 자원을 기다리는 상태를 말한다. 시스템적으로 한정된 자원을 여러 곳에서 사용하려 할 때 발생한다.   데드락이 일어나는 경우 Thread2는 A를 점유하고 있으면서 B의 자원을 요청, B의 자원을 습득할 때 까지 대기Thread3는 B를 점유하고 있으면서 A의 자원을 요청, A의 자원을 습득할 때 까지 대기서로 상대방이 자원을 내놓기를 바라면서 무기한 연기에 빠지는 상황현재 서로 원하는 자원이 상대방에 할당되어 있어서 두 프로세스는 무한정 wait 상태에 빠진다.   데드락 발생 조건 데드락은 4가지 조건이 모두 성립해야 발생한다.(하나라도 성립하지 않으면 데드락 문제를 해결할 수 있다) 상호 배제자원..

  • format_list_bulleted CS/운영체제
  • · 2024. 7. 4.
  • textsms
스핀락, 뮤텍스, 세마포어

스핀락, 뮤텍스, 세마포어

여러 개의 프로세스가 동시에 실행할 수 있는 멀티 코어 시스템은 성능이 좋아지지만 동시에 프로세스 간의 공유 자원 접근 관리라는 문제가 생겼다. 즉, 공유 자원에 여러 프로세스나 스레드가 동시에 접근하면 문제가 발생하는데 이렇게 다수의 컴포넌트가 공유 중인 자원을 동시에 읽거나 수정할 때 생기는 문제를 동기화 문제라고 한다. 이런 문제는 스핀락 뮤텍스 세마포어를 통해 해결할 수 있다. 더보기서로 알고 있는 정보를 일치시키는 것. 아이폰을 맥북에 동기화 시키면 아이폰의 정보를 맥북에서 알 수 있다.ex) 카카오톡, 메시지, 전화  임계영역프로세스 간의 공유 자원을 접근하는데 있어 문제가 발생하지 않도록 한 번에 하나의 프로세스만 이용하며 다른 프로세스들의 접근을 제한하는 영역이다. 임계 영역의 규칙상호배제..

  • format_list_bulleted CS/운영체제
  • · 2024. 7. 4.
  • textsms
TLB

TLB

가상 메모리 주소를 물리적인 주소로 변환하는 속도를 높이기 위해 사용되는 캐시다. 페이지 테이블은 메인 메모리에 존재하므로 CPU가 메인 메모리에 최소 2번 접근해야 원하는 데이터를 얻을 수 있다.한 번은 페이지 테이블에 접근, 또 한 번은 페이지 테이블을 기반으로 실제 메모리에 접근한다. 이런 메모리의 접근을 줄이고자 나온 게 TLB (Translation Look-aside Buffer)다.하드웨어적으로 지원하여 page table의 임시저장 cache 역할을 한다. Translation Lookaside Buffer  TLB(Translation Lookaside Buffer, 페이지 정보 캐시) TLB는 최근에 읽었던 page table을 매핑하여 저장하는데 크기는 64 ~ 1024 entry 정..

  • format_list_bulleted CS/운영체제
  • · 2024. 6. 27.
  • textsms
요구 페이징과 페이지 교체 알고리즘

요구 페이징과 페이지 교체 알고리즘

요구 페이징사용자가 요청할 때 메모리로 가져오는 것으로 이를 요구 페이징이라고 한다. 맥북을 오래 사용했을 때 느려지는 경험을 한 적이 있다.이때 껏다 키면 다시 빨라진다.오래 켜두었을 때 느려지는 이유는 작업을 하지 않고 쉬는 프로세스나 좀비 프로세스가 메모리를 차지하여 메모리 관리가 복잡해지기 때문이다.따라서 메모리엔 꼭 필요한 프로세스만 유지하는 것이 좋다. 운영체제는 프로세스를 구성하는 모듈을 전부 메모리에 올리지 않고 필요한 모듈만 올린다. 이렇게 관리하는 이유는메모리가 꽉 차면 관리가 어렵고 용량이 큰 프로세스를 저부 가져와 실행하면 느려질 수 있기 때문이다.  EX) 블로그 작성의 경우 작성 외에 글시체에 관련된 기능들이 있다.글을 작성할 때 바로 글시체에 관련된 모든 기능들을 메모리에 올리..

  • format_list_bulleted CS/운영체제
  • · 2024. 6. 23.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • ···
  • 6
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (86)
    • 개발 도서 (15)
    • 스프링 (12)
    • 코테대비 (0)
    • CS (2)
      • 네트워크 (9)
      • 데이터베이스 (11)
      • 운영체제 (13)
    • 개발 (20)
최근 글
인기 글
최근 댓글
태그
  • #국비지원
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바