조준화의 오류정정

조준화의 오류정정

  • 분류 전체보기
    • TIL
    • 프로그래밍 언어
      • Java
      • JavaScript
      • C++\C
      • HTML\CSS
      • Markdown
    • 알고리즘
      • 문제풀이
      • 알고리즘 지식
    • CS
      • Computer Architecture
      • Operating System
      • Computer Network
      • 백엔드
      • Information Retrieval
      • Database System
      • ServerProgramming
    • AI
      • YOLO
      • CS231n
    • 프로젝트: Co Laobr
    • 프로젝트: 노인을 위한 나라는 있다.
  • 홈
  • 태그
  • 방명록
RSS 피드
로그인
로그아웃 글쓰기 관리

조준화의 오류정정

컨텐츠 검색

태그

정렬 C++ 백준 BFS OS til BOJ java 재귀 dfs DP 문자열 우선순위 큐 html 자바 시뮬레이션 백트래킹 자료구조 문제풀이 알고리즘

최근글

댓글

공지사항

아카이브

CS(47)

  • [OS] User-level 쓰레드 VS 커널 쓰레드, Go Language

    커널/유저 레벨 쓰레드 쓰레드는 누가 생성하고 관리할까? OS(커널)에서 시스템 콜을 통해 쓰레드를 생성하고 관리한다. pthreads도 OS가 관리하는 쓰레드이다. 유저 레벨 프로세스에서 라이브러리를 통해 쓰레드를 관리할 수 있다. 어떤 쓰레드가 더 좋을까? 예를 들어서 생각해 보자. 팩토리얼을 재귀로 구현하면 함수가 계속 불리고, 함수를 시작하고 끝내기 위해 그만큼 어셈블리어 코드가 몇 줄씩 들어가게 된다. 따라서 성능적인 측면에서 반복문을 사용하는 방식이 좋다. 또, local function으로 myswap() 같은 걸 만들 수 있다. 또 library function으로 strcpy() 같은 것도 있고, system call에도 getpid() 같은 게 있다. 만약 세 함수가 모두 같은 역할을 ..

    2024.04.12
  • [OS] 프로세스와 쓰레드의 비교, pthreads, Signal handling

    Processes vs Threads 쓰레드는 하나의 프로세스에 담겨있다. 반면에, 프로세스는 멀티플 쓰레드를 가질 수 있다. 쓰레드끼리는 같은 address 내에 있으니 싸게 데이터를 공유할 수 있다. 쓰레드는 운영체제가 관리하는 스케줄링의 단위가 된다. 프로세스는 쓰레드를 수용하기 위한 컨테이너로 생각하면 된다. 프로세스와 쓰레드의 유사한 점 각자의 로지컬한 control flow를 가질 수 있다. 각자 동시에 다른 것들과 실행될 수 있다. 컨텍스트 스위치 프로세스와 쓰레드의 차이점 쓰레드는 코드와 데이터를 공유한다. 그러나, 프로세스는 그렇지 않다. 같은 코드와 데이터를 복제해 온다. 쓰레드가 프로세스보다 훨씬 저렴하다. 리눅스에선 거의 2배 차이. address space를 새로 만들지 않아도 되..

    2024.04.11
  • [OS] 프로세스의 단점과 쓰레드의 도입, 멀티 쓰레딩의 장점

    프로세스의 단점 프로세스도 좋지만 프로세스는 Heavy-weight이다. 프로세스 다음의 많은 요소를 포함해야 한다. address space OS resources Hardware execution state (PC, SP, registers 등등) 또, 프로세스를 생성하는 것은 data structure가 반드시 할당되어야 하 초기화되어야 하므로 비싸다. 프로세스 안에서 커뮤니케이션 하는 것 또한 항상 OS를 통해야 하므로 비싸다. 시스템 콜과 데이터를 복제하는 오버헤드가 들기 때문이다. 웹 서버 예제를 보자. while(1){ int sock = accept(){ if((pid = fork()) == 0){ // Handle client request } else{ // Close socket } ..

    2024.04.09
  • [OS] Zombie & Orphan process와 PCB, Context Switch, fork

    Zombie & Orphan process Zombie process는 defunct process라고도 부르며, 종료를 했지만 운영체제가 내부에서 관리하는 프로세스 테이블에서 아직 종료되지 않았다고 인식되는 프로세스를 Zombie 프로세스라 한다. 사실 종료되지 않았다고 인식되는 것은 아니고 그냥 남겨두는 것인데, PARENT Process가 CHILD의 pid를 알 수 없어서 좀비상태로 놔두는 것이다. 예시를 보면 child 프로세스는 1초만에 먼저 종료된다. 그리고 부모 프로세스는 30초간 대기하고 종료되는데, parent는 child의 상태값을 가져가야 하기에 좀비 상태로 두는 것이다. 의도하지 않은 많은 좀비 프로세스는 시스템을 망가지게 하므로 조심해야 한다. Orphan process는 고아 ..

    2024.04.03
  • [OS] 프로세스의 개념과 생성, fork 시스템 콜

    Program vs Process vs Processor vs Task, Job Program : 순서 있는 명령어의 집합 프로그램은 storage(하드디스크)에 있다. 그게 실행되면 프로세스가 된다. Process : 프로그램이 실행 중인 것 프로세스는 메모리에 있다. Processor : CPU 프로세서는 메모리에 있는 프로세스의 코드를 한줄한줄 가져와서 실행한다. Task, Job Task와 Process는 혼용해서 사용한다. 그런데 Job은 좀 더 큰 개념이다. job은 하나의 기능 느낌이다. DB를 액세스 하는 프로세스, 계산하는 프로세스 등등의 프로세스를 합해서 입금이라는 job이 된다. Job과 Task도 혼용해서 사용하기도 한다. Process Concept 프로세스는 실행중인 프로그램의 ..

    2024.04.02
  • [OS] I/O에서 데이터 전송 방식과 Timers, Protected Instruction

    DMA I/O 컨트롤러 내부에 조그마한 버퍼 메모리가 있다. 그 버퍼 메모리에서 메인 메모리쪽으로 복사사키는걸 input, 반대를 output이라 한다. 이러한 과정, I/O에서 데이터를 전송하는 방식은 Programmed I/O와 DMA 방식이 있다. Programmed I/O 데이터를 옮기는 작업을 CPU가 관여한다. 특별한 I/O instruction(protected instruction) 방법이 있고 memory-mapped 방법도 있다. I/O 작업때문에 CPU가 묶여있기에 비효율적일 수 있다. Programmed I/O 방식은 전송 데이터 양이 적을때 사용한다. 키보드에서 1byte만 옮기는 상황이라면 CPU가 빨리 복사해서 옮기는게 더 낫다. DMA I/O 장치가 직접 옮긴다. DMA란 D..

    2024.04.01
이전
1 ··· 4 5 6 7 8
다음
티스토리 github notion
© 2018 TISTORY. All rights reserved.

티스토리툴바