학습 기록 26

CS : 스레드 / 멀티 스레딩 / 동시성 / 공유 자원 / race condition / critical section / CPU 스케쥴링 알고리즘

스레드?프로세스의 실행가능한 가장 작은 단위입니다. 프로세스는 여러 스레드를 가집니다.  코드 데이터 스택 힙을 각각 생성하는 프로세스와는 달리 스레드는 코드, 데이터, 힙은 스레드끼리 서로 공유합니다. 그 외 영역(스택, 스레드 상태)은 각각 생성됩니다 동시성?서로 독립적인 작업들을 작은 단위로 나누고 동시에 실행되는 것처럼 보여주는것 멀티 스레딩프로세스 내 작업을 여러개의 스레드로 처리는 기법이며, 스레드끼리는 서로 자원을 공유하기 때문에 효율성이 높습니다.  예로 웹 요청을 처리할때 새 프로세스를 생성하는 대신 스레드를 사용하는 웹 서버는 훨씬 적은 리소스를 소비하며, 한 스레드가 중단되어도(blocked) 다른 스레드는 실행 상태(running)일 수 있기 때문에 중단되지 않은 빠른 처리가 가능합..

CS : 쓰레드 / 프로세스 / 메모리 할당 / PCB / 컨텍스트 스위칭 / 멀티 프로세싱 / IPC

쓰레드 : 대기 상태란?ready는 CPU 스케쥴러로부터 CPU 소유권이 넘어오기를 기다리는 상태입니다.  이 떄 메모리 공간이 충분하면 메모리를 할당받고, 아니면 아닌 상태로 대기하고 있습니다. 쓰레드 : 대기 중단 상태란?ready suspended는 메모리 부족으로 일시 중단 0 : Process?컴퓨터에서 실행되고 있는 프로그램을 말하며, CPU 스케쥴링의 대상이 되는 task라는 용어와 거의 같은 의미입니다.  프로그램이 메모리에 올라가면 프로세스가 되는 인스턴스화가 일어납니다. 이후 O/S의 CPU 스케쥴러에 따라 CPU가 프로세스를 실행합니다. 0 : 스레드는?프로세스 내 작업 흐름을 지칭합니다/ 7 : 소스 코드와 프로그램, 프로세스의 관계, 실행 과정 (C언어 기준) 소스 코드 -> 전처..

CS : 메모리 / 할당 / 페이지 폴트 / 스레싱 등

메모리 관리 기법인 가상 메모리에 대해 알려줘 컴퓨터가 실제로 이용 가능한 메모리 자원을 추상화하여 이를 사용하는 사용자들에게 매우 큰 메모리로 보이게 만드는 것  가상 주소(logical address)와  실제 주소(physical address)가 매핑되어 있고,  프로세스의 주소 정보가 들어 있는 페이지 테이블로 관리됩니다.  이 때 속도 향상을 위해 TLB를 사용합니다.TLB는? 메모리와 CPU 사이에 있는 주소 변환을 위한 캐시입니다.  페이지 테이블에 있는 리스트를 보관하며  CPU가 페이지 테이블까지 가지 않도록 해 속도를 향상시킬 수 있는 캐시 계층입니다.가상 주소는 어떻게 실제 주소로 변환되나?MMU : 메모리 관리 장치에 의해 실제 주소로 변환되며, 이 덕분에 사용자는 실제 주소를 의..

CS : OS / 캐시 / 캐시매핑

OS의 큰 역할 4가지를 말해주세요 1. CPU 스케쥴링과 프로세스 관리 2. 메모리 관리 3. 디스크 파일 관리 4. I/O 디바이스 관리  CPU 소유권을 어떤 프로세스에 할당할지, 프로세스의 생성과 삭제, 자원 할당 및 반환을 관리합닌다.  한정된 메모리를 어떤 프로세스에 얼마나 할당해야 하는지를 관리합니다.  디스크 파일의 보관 방법을 관리합니다.  I/O 디바이스들인 마우스, 키보드와 컴퓨터 간에 데이터를 주고받는것을 관리합니다. - O/S의 정확한 정의에 대해 말해주세요 O/S는 인터페이스이며, 사용자가 컴퓨터를 쉽게 다룰 수 있게 합니다.  한정된 메모리나 시스템 자원을 효율적으로 분배합니다.  운영체제와 유사하지만 소프트웨어를 추가로 설치할 수 없는 것을 펌웨어라고 합니다. - 컴퓨터는 어..

CS : DB / 트랜잭션 / 키

#separator:tab#html:false쓰레드 : 실행 상태란? running은 CPU 소유권과 메모리를 할당받고  인스트럭션 수행중임을 의미 CPU burst가 일어났다고도 표현쓰레드 : 종료 상태란? 메모리와 CPU 소유권을 모두 놓고 가는 상태 자연스러운 종료 + 부모가 자식 프로세스를 강제시키는(abort) 비자발적 종료 자식 프로세스에 할당된 자원의 한계치를 넘어서거나 부모 프로세스가 종료 or 사용자가 process.kill 등 여러 명령어로 프로세스를 종료할때 발생 프로세스의 메모리 구조 4가지를 말하라 동적 : 힙 / 스택 정적 : 데이터  / 코드 프로세스의 키워드 : cpu 소유권 + 메모리 트랜잭션이란? DB에서 하나의 논리적 기능을 수행하기 위한 작업의 단위를 말하며 DB에 q..

람다 관련

sP ; 언제나 @funtionalInterface + public interface 3가지 참여자가 있다인터페이스인터페이스를 args로 사용하는 메소드메인단- 람다는 그냥 arg로 사용되는 익명 구현 객체이며, 그것의 간편한 작성법이다컴파일 시 람다를 익명 구현 객체로 변환해 컴퓨터가 자각한다 - 메소드에서는 인자 공급만 하고, Overriding은 나중에, main단에서 사용시 (람다 형식으로) 하는 것   *왜 바로 위인 method단을 건너뛰고, 메인단에서 사용하는 두 단계 위에서 재정의하나?> 익명 구현 객체이므로> 그리고 메인은 사실 method를 사용만 하는 역할이므로, 메소드를 static으로 불러오거나. 기껏해야 메소드를 가진 class를 작성하는 것 뿐이다(클래스객체.메소드) - abs..

멀티-스레드

14 multi-thread (멀티 스레드 맥락) 카톡이 있으면 채팅과 전송을 동시에 사용하기 위해 Program - Process - thread 프로세스는 종료되더라도 다른 프로세스에 영향x(멜론-카톡 예시) 멀티 스레드 중 스레드1이 종료되면 해당 프로세스를 즉시 종료시키기 때문에 다른 스레드에 영향 미친다 그래서 멀티 스레드를 사용할 때에는 예외 처리를 잘 해야 한다 (메인 스레드) 모든 프로그램은 main()을 실행하면서 그 위에 추가 작업 thread들이 얹어짐 메인이 작업보다 먼저 종료되더라도 실행중인 스레드가 하나라도 있다면 프로세스는 종료되지 않는다 (작업 스레드 생성과 실행 / 설계) 자바는 main이 존재하므로, 메인 이외에 추가 작업 수만큼 스레드 생성 작업 스레드도 객체로 관리하므..