CS

· CS/OS
가상주소와 물리주소프로세스들은 모두 본인들만의 개별적인 Address Space인 가상 주소를 가지고있다.이를 Virtual Address Space라고 부른다. 하지만 이는 개념적인 성격이 크다. 결국 데이터는 물리적인 메모리에 들어 있어야 하는 게 아닌가? 따라서 실제 메모리 부분을 Physical Memory Address Space 라고 부른다. 하지만 여기서 드는 의문, 둘을 어떻게 매핑하지?매핑을 위한 Page Table이라는 녀석또한 도입했다. 아래서 충분히 설명하겠다. Page와 Page Frame현재 우리가 사용하는 운영체제는 64bit(혹은 32bit)이다. 이 bit로 나타낼 수 있는 정보의 양은 얼마나 될까?2^64 = 18,446,744,073,709,551,616(약 1.8..
· CS/OS
시그널이란?프로세스에 뭔가 발생했음을 알리는 간단한 메세지(비동기적)대부분 커널이 프로세스로 보낸다. 무엇이 발생했는지 표시하는 "미리 정의된 상수"를 사용한다.SIGTERM(프로그램 정상 종료,ctr-c), SIGTSTP(프로그램 일시 정지, ctr-z)시그널 송/수신시그널 송신목적지 프로세스의 일부 컨텍스트를 갱신해서 시그널을 목적지 프로세스로 보낸다.커널이 divide by zero를 감지한 경우커널이 자식 프로세스 종료를 감지한 경우다른 프로세스가 kill 을 전송해서 커널이 시그널을 보낼 것을 요청했을 때시그널 수신목적지 프로세스는 전달된 신호에 대해서 커널이 어떤 방식으로든 반응하여야 할 때 시그널을 수신한다고 한다.무시(Ignore):아무것도 하지 않는다.대상 프로세스를 종료(with opt..
· CS/OS
멀티 쓰레드(다중 쓰레드)의 동작 방식CPU의 작업 처리 방식중 동시성 (Concurrency)에 대한 내용이다. 자세한 내용은 이전에 정리한 아래 링크 참조.https://chabin37.tistory.com/24#%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4%20%26%20%EC%8A%A4%EB%A0%88%EB%93%9C%EC%9D%98%20%EC%83%9D%EB%AA%85%20%EC%A3%BC%EA%B8%B0-1 Process와 Thread(+멀티, 개념)참고:https://inpa.tistory.com/ Inpa Dev 👨‍💻성장 욕구가 가파른 초보 개발자로서 공부한 내용을 쉽게 풀어쓴 기술 개발자 블로그를 운영하고 있습니다.inpa.tistory.com  CPU의 최소 작..
· CS/OS
package thread_state_control_4; public class AutoSaveThread extends Thread {     public void save() {        System.out.println("작업 내용을 저장함.");    }        @Override    public void run() {        while(true) {            try {                Thread.sleep(1000);            } catch (InterruptedException e) {                break;            }            save();        }    }}​Thread daemonThread =..
· CS/OS
자바는 JVM위에서 작동한다.JVM도 한개의 프로세스라고 볼 수 있다.이 JVM안에서 코드를 돌릴 때, 여러 흐름으로 쪼개서 병렬로 돌릴 수 있다. 이를 쓰레드라고 한다.자바에서 쓰레드를 만들때, 2가지 방식을 활용할 수 있다. 이 방식은 각각의 특징을 지니므로, 이 특징에 대해 먼저 알고 가자.White Box 방식-Thread  상속개념: 객체나 시스템의 내부 구현을 알고 그 내부 구조와 동작을 고려하며 코드를 작성하거나 테스트하는 방식을 의미한다. 객체 내부에서 어떻게 작동하는지 알고 이해해야 하는 경우에 적용됩니다.예시: 어떤 클래스의 메서드를 사용할 때, 그 메서드가 내부적으로 어떤 알고리즘을 사용하는지, 어떻게 데이터를 처리하는지 알 필요가 있는 경우입니다.장점: 디버깅이나 최적화할 때 내부 ..
· CS/OS
함수fork():프로세스를 복제하는 함수로, 호출한 프로세스의 복사본(자식 프로세스)을 만듭니다.exec() 계열 함수:새 프로세스를 실행하기 위한 함수로, 자식 프로세스에서 새로운 프로그램을 실행할 때 사용됩니다.예: execl(), execp(), execv(), execvp() 등wait() 및 waitpid():자식 프로세스가 종료될 때까지 부모 프로세스가 대기하도록 합니다.kill():특정 프로세스에 시그널을 보내는 함수로, 프로세스를 종료하거나 특정 시그널을 처리하게 할 수 있습니다.getpid():현재 프로세스의 프로세스 ID(PID)를 반환하는 함수입니다.getppid():부모 프로세스의 프로세스 ID를 반환합니다.exit():현재 프로세스를 종료하는 함수입니다.setuid() / getu..
· CS/OS
https://wildeveloperetrain.tistory.com/180 좀비 프로세스 원인과 죽이는 방법(Zombie Process)개발서버를 운영하는 중에 "There are 2 zombie processes."라는 메시지를 발견했는데요. 리눅스 운영체제에서 발생할 수 있는 좀비 프로세스의 원인은 무엇인지, 죽이는 방법은 무엇인지 해결하며 정리wildeveloperetrain.tistory.com 1.  Zombie Process란?프로세스가 종료되고 리소스는 모두 회수되었지만, 시스템 프로세스 테이블에 남아있는 defunct 상태의 프로세스원래라면, 부모 프로세스에서 wait()시스템 호출을 통해 종료된 자식의 프로세스 상태를 수집(reaping)해야 한다.이를 OS에 반납하여야 하지만, wai..
· CS
https://naeunbi698.tistory.com/197 컴파일러, 인터프리터, 어셈블러컴파일러란? 컴파일러는 특정 프로그래밍 언어를 다른 프로그래밍 언어로 옮기는 번역 프로그램이다 . 보통 high-level 프로그래밍 언어를 low-level language인 기계어, 어셈블리어 등으로 바꾸는데에naeunbi698.tistory.com 컴파일? 컴파일러?컴파일 : 어떤 언어의 코드 전체→다른 언어로 바꿈컴파일러 : 컴파일을 자동으로 수행하주는 소프트웨어를 가리킴 보통 high-level 프로그래밍 언어를 low-level language인 기계어, 어셈블리어 등으로 바꾸는데에 사용된다.하지만 정의에서도 알 수 있듯, python을 c언어로 변역하는 프로그램도 컴파일러라고 할 수 있다.컴파일러는..
chabin37
'CS' 카테고리의 글 목록