신문

  • 메타버스에서 부동산 사볼까...한달동안 1000억원어치 팔렸다 [홍키자의 빅테크]

    솔직히 NFT는 나중에 인터넷 저작권의 일을 하지 않을까 하지만, 메타버스는 그저 게임이 하던 역할에 이름이 바뀐것이 아닌가 하는 생각이 컸다. 물론 생각의 변화는 없지만 사람들이 관심을 가진다는 것 만으로도 주의 깊게 볼 가지가 있다는 생각을 요즘 들어 가진다.
    그런 곳에 돈이 들어가고 새로운 유입이 발생하는 것 같다.

  • 실적보단 이용자수가 중요한 이유 [추적자추기자]

    실적도 실적이지만 이용자가 전년보다 줄어든 수치라 한다. 이것이 처음이라 더 크게 다가왔다고 한다. 초등학교 떄 카카오 스토리 , 중.고등학교 페북, 현재 인스타 그램 사람들은 왜 SNS를 다 다른 플랫폼에서 사용할까 사실 잘 모르겠다.
    나도 내가 왜 저걸 설치해뒀는지 모르는 거 처럼 말이다.

  • 유가 급등에 전력도매가 200원대 급등…전기요금 인상 압박 가중

    우크라이나 사태 등 지정학적 위기로 국제 유가와 함께 LNG 가격이 최근 큰 폭으로 오르면서 SMP(전력도매가격)를 끌어올렸다. SMP 상승에 따라 한국전력의 적자 부담은 가중될 전망이다.
    우리 나라가 적자를 보면서 운영 중인 곳이 매우 많은 것 같다. 현재는 추경과 다른 부분에 의한 것도 있는데 이게 어떻게 영향을 줄지 지켜 봐야 겠다.



알고리즘

세그먼트 트리 + 분할정복
BOJ 2104 부분배열 고르기



프로세스의 이해와 생성을 들었다.

운영체제

프로세스의 메모리 영역

Text : 실행할 코드
Data : 전역 변수
Heap : 동적 할당된 변수
Stack : 함수로 인한 임시적인 공간

프로세스의 state

New : 직전에 생성
Running : 현재 실행중
Waiting : I/O 또는 시그널을 받아 기다림 (Wait Queue에 들어가 있음)
Ready : 스케줄링을 기다림 (Ready Queue에서 대기)
Terminated : 실행이 종료됨.

PCB

코드에 프로세스로써 필요한 모든 정보를 구조체로 저장하는 방식, 운체의 코드인 것 같음
이로 인해 스케쥴링이 가능함(이외의 프로세스를 실행하다가 다시 실행할 때는 PCB의 정보로 실행지점을 알 수 있기에)
프로그램이 로드 되는 단위 이기도 함(프로세스와 동일하다고 봐도 될 듯)

Context Switch

context : PCB를 교환하는 것
과정으로는
1. 현재 프로세스의 상태를 저장
2. 교환할 프로세스의 상태를 로드

자식 프로세스

하나의 프로세스에서 새로운 프로세스를 만드는 방식
fork()를 통해 생성,
wait() O : 자식이 실행되고 부모는 wait queue로 들어감
wait() X : 부모의 실행 지속(그러나 언제나 그런 것은 아님)

실행시 가능성 2가지
1. 자식, 부모가 동시에 실행
2. wait()을 통해 자식이 우선 실행

메모리(PCB)에 대한 가능성 2가지
1. 부모의 PCB를 그대로 복사
2. 새로운 프로그램의 PCB를 가져옴

좀비, 고아 프로세스

좀비 : 자식 프로세스가 종료되었는데 메모리 정리가 되지 않은 프로세스 (부모 프로세스 존재)
고아 : 프로세스가 종료되었는데 메모리 정리를 해줄 부모 프로세스가 없을 때(wait()을 하지 않는 경우)
고아 프로세스의 경우 init프로세스가 메모리 정리를 수행

pid

fork()의 리턴값으로 받는 것은 자식의 경우 0, 부모의 경우 자식의 pid를 받는다.
그러나, 이 말을 본인의 pid가 리턴 값이라 혼돈하면 안 된다.

주의할 점

  1. 메모리의 구분은 프로세스 별로 구분한다.
    -> 내부의 전역변수, 함수의 변수 등을 공유하지 않는다.
  2. fork()로 생성된 전체 프로세스의 개수는 2^(fork()의 횟수)이다.
    -> fork()와 동시에 출력을 하거나 한다면 이 횟수는 2^1 + 2^2 + ... + 2^(fork()의 횟수)이다.
  3. exec()과 같은 함수는 PCB를 교체해버린다.
    -> 원래의 코드로 돌아올 수 없다.

0개의 댓글