조준화의 오류정정

조준화의 오류정정

  • 분류 전체보기
    • 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 피드
로그인
로그아웃 글쓰기 관리

조준화의 오류정정

컨텐츠 검색

태그

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

최근글

댓글

공지사항

아카이브

OS(6)

  • [OS] Synchronization & Critical sections & Synchronization Problem

    Synchronization 멀티쓰레드로 만들어진 프로그램들이 서로 잘 돌아가게 해야 한다. 여러 자원을 공유하는 멀티 쓰레드 프로그램들이 서로 잘 협력해야 한다. 멀티 쓰레드들이 실행되면서 문제를 일으킬 수 있는데, 그걸 Synchronization 문제라 한다. 이 협력을 통제해야만 문제가 생기지 않는다. 두 개의 쓰레드가 있는 프로세스를 생각해 보자. 쓰레드들의 스케줄링은 OS 내부의 스케줄러가 결정한다. 그런데 가끔, 쓰레드들의 실행 순서에 따라서 문제가 생기거나 결과가 바뀔 수 있다. 운영체제의 스케줄링을 프로그래머가 결정할 수 없다. 그런데 프로그래머는 스케줄링을 컨틀로 해야 할 때가 있다. 여러 쓰레드의 실행 순서, 프로세스들 간의 스케줄링을 컨트롤해야 할 때가 분명히 있다. 예시로 보자. ..

    2024.04.13
  • [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] 운영 체제의 내부 구조와 이벤트들 - Interrupt, Exception, Signal

    OS Internals 운영체제는 커널로 명령어를 처리한다. 커널은 하드웨어와 소프트웨어 간의 인터페이스 역할을 하며, 시스템의 리소스를 관리하고 프로세스 간의 통신을 관리한다. 또, 운영체제는 애플리케이션과 System Call Interface로 통신한다. 애플리케이션 계층을 User space, 커널 부분을 Kernel space라 한다. 디바이스(하드웨어) 별로 어떤 드라이브가 필요한지 등의 정보를 Kernel space의 Arch-dependent kernel code가 관리한다. 시스템 콜 인터페이스와 커널은 운영체제의 다른 부분이며 다른 역할을 한다. 시스템 콜 인터페이스는 어플리케이션이 운영체제를 호출할 수 있는 인터페이스다. 커널은 시스템 콜을 수신하고 해당 요청을 처리하여 하드웨어와 상..

    2024.03.31
  • [OS] OS와 컴퓨터의 역사

    OS란? 하드웨어와 소프트웨어 사이에 Architecture가 존재한다. 애플리케이션 계층에 있는 어떤 애플리케이션이던 실행시키려면 하드웨어가 어떻게 동작할지 관리해야 하는데, 이를 Architecture 시스템 소프트웨어가 도와준다. 그리고 그 위에 OS가 존재한다. OS가 어느 위치에 존재하는지 잘 알아야 한다. 애플리케이션 view에서 OS 프로그램을 위한 실행할 수 있는 환경 제공을 제공한다. abstract view를 제공한다. 프로세서를 스레드로 제공한다. 메모리를 Address spaces라는 가상의 메모리를 제공한다. 디렉터리, 파일들처럼 밑에서 동작하는 디테일은 모르는 채로 사용할 수 있도록 추상화된 시각을 제공한다. I/O 장치, 네트워크를 파일로 다룰 수 있게 해 준다. 시스템 vie..

    2024.03.24
이전
1
다음
티스토리 github notion
© 2018 TISTORY. All rights reserved.

티스토리툴바